今天在网上学习了关于进制的一些知识,现在跟大家分享一下自己的理解,如有不对的希望提出改正,觉得有帮助的话点赞支持一下。
十进制
首先说一下十进制,十进制计数规则是:
基数为10。
有10个数字,0、1、2、3、4、5、6、7、8、9。
逢10进1,借1当10。
很简单,这个十进制就是我们最常用的一种计数方法,逢十进一,借一当十。像我们小时候开始学数数一样,从0数9就变成10,然后第二位从0开始,到9的时候再进1。
二进制
同理,2进制也一样,十进制计数规则是:
基数为2。
有2个数字,即0和1。
逢2进1,借1当2。
八进制
同理,8进制也一样,十进制计数规则是:
基数为8。
有2个数字,即0~8。
逢8进1,借1当8。
十六进制
同理,16进制也一样,十进制计数规则是:
基数为16。
有16个数字,即(0~9 +a~f)。
逢16进1,借1当16。
看到上面这些,不知道大家有没有发现,无论是哪个进制,他都是以本进制为基数,最大数值也是本进制的进制数,当超过本身进制数时就会进1。
还有一点就是,大家可能也发现了,那就是十六进制里有字母。为什么呢,因为当数字超过9字后,我们规定用26个字母来表示后面的数值,即a~z;
a对应数字11,以此类推,z对应36,。由此可知,最高的进制数就是36进制了。
那接下来,我们就说下这些进制要怎么转化成我们熟悉的十进制吧
1、二进制转十进制
以为二进制只有01两个数,我们现在来写一个比较简单的二进制数,假如这个数为10,好,那我们怎么把它转成十进制呢?请往下看
我根据他的规律得出了这么一个公式 :(A)B = X1 * B^(n -m)+...+X n * B^(0);
公式解析:
A:进制数的值
B : 进制基数(是几进制) ,如二进制:(10)2,八进制(1276)8...
X:进制数值的位数对应的值,如二进制(100101),这个二进制有6个位数,X1 = 1、X2 = 0、...X6 = 0六个。
n:进制数的位数,如二进制(100101),这个二进制有6个位数,那么它的n就为6
m: 初始值为1,每次跟基数计算式+1,直到n-m=0时,退出计算
好,接下来我们用这个公式来将二进制转为十进制看看
二进制
先来个简单的:
(10)2
= 1 * 2^(2-1) + 0 * 2^(2-2)
= 2 + 0
= 2;(二进制为10的值转化为十进制的值为2)
接下来来个长一点的看看:
(10110110)2
= 1 * 2^(8-1) + 0 * 2^(7-1) + 1 * 2^(6-1) + 1 * 2^(5-1) + 0 * 2^(4-1) + 1 * 2^(3-1) + 1 * 2^(2-1) + 0 * 2^(1-1)
= 128 + 0 + 32 + 16 + 0 + 4 + 2 + 0
= 182;(二进制为10110110的值转化为十进制的值为182)
同样的道理,我们再来看看八进制、十六进制的转换
八进制
先来个简单的:
(127)8
= 1 * 8^(3-1) + 2 * 8^(3-2) + 7 * 8^(3-3)
= 64 + 16 + 7
= 87;(八进制为127的值转化为十进制的值为87)
接下来来个长一点的看看:
(01234567)8
= 0 * 8^(8-1) + 1 * 8^(7-1) + 2 * 8^(6-1) + 3 * 8^(5-1) + 4 * 8^(4-1) + 5 * 8^(3-1) + 6 * 8^(2-1) +7*8^(1-1)
= 0 + 262144 + 65536 +12288 + 2048 + 320 + 48 + 7
= 342391;(八进制为01234567的值转化为十进制的值为342391)
十六进制
先来个简单的:
(12ab)16
= 1 * 16^(4-1) + 2 * 16^(4-2) + 10 * 16^(4-3) + 11 * 16^(4-4)
= 4096 + 512 + 160 + 11
= 4779;(十六进制为12ab的值转化为十进制的值为4779)
接下来来个长一点的看看:
(1234abcd)16
= 1 * 16^(8-1) + 2 * 16^(7-1) + 3 * 16^(6-1) + 4 * 16^(5-1) + 10 * 16^(4-1) + 11 * 16^(3-1) + 12 * 16^(2-1) + 13 * 16^(1-1)
= 268435456 + 33554432+ 3145728 + 262144 + 40960 + 2816 + 192 + 13
= 305441741;(十六进制为01234567的值转化为十进制的值为305441741)
总结
看完上面的一些计算,小伙伴们是不是觉得很简单呢,这个公式同时也试用其他任何进制的计算,小伙伴们快来试试吧。
如果觉得写的好的,帮忙给作者点个小爱心哦,谢谢哦。如果有哪里有错的或者写的不好的,也希望小伙伴们提出来,这样我也能找到自己的不足并改正!再次感谢大家的阅读!!