计算机中常用的数的进制主要有:二进制、八进制、十六进制,学习计算机要对其有所了解。
2进制,用两个阿拉伯数字:0、1;
8进制,用八个阿拉伯数字:0、1、2、3、4、5、6、7;
10进制,用十个阿拉伯数字:0到9;
16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这五个字母来分别表示10,11,12,13,14,15。字母不区分大小写。
以下简介各种进制之间的转换方法:
一、二进制转换十进制
例:二进制 “1101100”
1101100 ←二进制数
6543210 ←排位方法
例如二进制换算十进制的算法:
1*26 + 1*25 + 0*24 + 1*23 + 1* 22 + 0*21 + 0*20
↑ ↑
说明:2代表进制,后面的数是次方(从右往左数,以0开始)
=64+32+0+8+4+0+0
=108
二、二进制换算八进制
例:二进制的“10110111011”
换八进制时,从右到左,三位一组,不够补0,即成了:
010 110 111 011
然后每组中的3个数分别对应4、2、1的状态,然后将为状态为1的相加,如:
010 = 2
110 = 4+2 = 6
111 = 4+2+1 = 7
011 = 2+1 = 3
结果为:2673
三、二进制转换十六进制
十六进制换二进制的方法也类似,只要每组4位,分别对应8、4、2、1就行了,如分解为:
0101 1011 1011
运算为:
0101 = 4+1 = 5
1011 = 8+2+1 = 11(由于10为A,所以11即B)
1011 = 8+2+1 = 11(由于10为A,所以11即B)
结果为:5BB
四、二进制数转换为十进制数
二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……
所以,设有一个二进制数:0110 0100,转换为10进制为:
计算: 0 * 20 + 0 * 21 + 1 * 22 + 1 * 23 + 0 * 24 + 1 * 25 + 1 * 26 + 0 * 27 = 100
五、八进制数转换为十进制数
八进制就是逢8进1。
八进制数采用 0~7这八数来表达一个数。
八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权值为8的2次方……
所以,设有一个八进制数:1507,转换为十进制为:
计算: 7 * 80 + 0 * 81 + 5 * 82 + 1 * 83 = 839
结果是,八进制数 1507 转换成十进制数为 839
六、十六进制转换十进制
例:2AF5换算成10进制
直接计算就是: 5 * 160 + F * 161 + A * 162 + 2 * 163 = 10997
(别忘了,在上面的计算中,A表示10,而F表示15)、
现在可以看出,所有进制换算成10进制,关键在于各自的权值不同。
假设有人问你,十进数 1234 为什么是 一千二百三十四?你尽可以给他这么一个算式: 1234 = 1 * 103 + 2 * 102 + 3 * 101 + 4 * 100
二进制换算如下:
二进制换算是用0和1两个数码来表示的数,它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。
二进制转换成十进制:基数乘以权,然后相加,简化运算时可以把数位数是0的项不写出来,因为0乘以其他不为0的数都是0,小数部分也一样,但精确度较少。
例题:10001111,算法过程:1×2⁷+1×2³+1×2²+1×2¹+1×2⁰=143,所以10001111的十进制表示为143。
规律:个位上的数字的次数是0,十位上的数字的次数是1,依次递增,而十分位的数字的次数是-1,百分位上数字的次数是-2,依次递减。
二进制数除法与十进制数除法很类似,可先从被除数的最高位开始,将被除数(或中间余数)与除数相比较。
若被除数(或中间余数)大于除数,则用被除数(或中间余数)减去除数,商为1,并得相减之后的中间余数,否则商为0,再将被除数的下一位移下补充到中间余数的末位,重复以上过程,就可得到所要求的各位商数和最终的余数。
二进制转十进制
方法:“按权展开求和”
【例】:10001111 1*+1*+1*+1*+1*=143,所以10001111的十进制表示为143。
规律:个位上的数字的次数是0,十位上的数字的次数是1,......,依次递增,而十
分位的数字的次数是-1,百分位上数字的次数是-2,......,依次递减。
注意:不是任何一个十进制小数都能转换成有限位的二进制数。
二进制转八进制
二进制数转换成八进制数:从小数点开始,整数部分向左、小数部分向右,每3位为一组用一位八进制数的数字表示,不足3位的要用“0”补足3位,就得到一个八进制数。
【例】:10001111
010 001 111
2 1 7
所以10001111的八进制表示为(217)8.
二进制转十六进制
二进制数转换成十六进制数:二进制数转换成十六进制数时,只要从小数点位置开始,向左或向右每四位二进制划分一组(不足四位数可补0),然后写出每一组二进制数所对应的十六进制数码即可。
【例】:10001111
1000 1111
8 F
所以10001111的[2] 十六进制表示为(8F)。
八进制转二进制
八进制转换成二进制数:八进制数通过除2取余法,得到二进制数,每个八进制对应三个二进制,不足时在最左边补充零。
【例】:127
1 2 7
001 010 111
所以127的二进制就是001010111。
十六进制转二进制
十六进制转二进制:十六进制数通过除2取余法,得到二进制数,每个十六进制对应四个二进制,不足时在最左边补充零。
【例】:0x8F
8 F
1000 1111
所以0x8F的二进制是10001111。
1、二进制转换为十进制
二进制数00111从低位到高位的位权依次是2的0次幂1、2的1次幂2、2的2次幂4、2的3次幂8、2的4次幂16。
理解了二进制计数的基数和位权,就可以进行数制转换了。00111如何转换成十进制计数呢?转换很简单,将二进制数从高位到低位每个数字乘以相应的位权然后求和就可以了。
00111(二进制)= 0 * 2^(5-1) + 0 * 2^(4-1) + 1 * 2^(3-1) + 1 * 2^(2-1) + 1 * 2^(1-1)
= 0 * 16 + 0 * 8 + 1 * 4 + 1 * 2 + 1 * 1
= 7(十进制)
2、十进制转换为二进制
十进制整数到二进制整数的转换可以采用“除2取余,逆序输出”法,
具体转换过程是,用2去除一个十进制数,得到商和余数,然后再用2去除商,又会得到商和余数,循环往复直至商为0为止。如果是十进制小数转二进制小数,则采用“乘2取整,顺序输出”。转换过程如下图所示:
3、二进制和八进制之间的转换
二进制转八进制:取三合一法,即从二进制的小数点为分界点,向左(向右)每三位取成一位,接着将这三位二进制按权相加,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的八进制数。
如果向左(向右)取三位后,取到最高(最低)位时候,如果无法凑足三位,可以在小数点最左边(最右边),即整数的最高位(最低位)添0,凑足三位。
4、八进制转二进制:取一分三法,即将一位八进制数分解成三位二进制数,用三位二进制按权相加去凑这位八进制数,小数点位置照旧。
5、二进制和十六进制之间的转换
二进制转十六进制:取四合一法,即从二进制的小数点为分界点,向左(向右)每四位取成一位,接着将这四位二进制按权相加,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的十六进制数。
如果向左(向右)取四位后,取到最高(最低)位时候,如果无法凑足四位,可以在小数点最左边(最右边),即整数的最高位(最低位)添0,凑足四位。
6、十六进制转二进制:取一分四法,即将一位十六进制数分解成四位二进制数,用四位二进制按权相加去凑这位十六进制数,小数点位置照旧。
7、十进制和八进制之间、十进制和十六进制之间都是先把十进制转换为二进制,然后在转换为八进制或者十六进制。
扩展资料
某进制计数制允许选用的基本数字符号的个数成为基数。一般来说,N进制的基数为N,可进行选用的基本数字符号有N个,分别为0到N-1。
比如十六进制的基数为16,可供选择的基本数学符号为0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F十六个。
位权是指,该进位制中每一固定位置对应的单位值,简称为权。
以十进制计数制来说,计数单位分别为个位、十位、百位、千位、万位、十万位……,其中个位数表示数值1、十位数表示数值10、百位数表示数值100、千位数表示数值1000、……,每个位数表示的数值叫位权。
位权通过计算基数的n-1次幂就可以得到,这里的n是指位数所在数字中的位置。在十进制中就是10的(n-1)次幂。
例如,对十进制数1260来说,个位数是1260的第一个数字,因此n为1;十位数是第二个数字,因此n为2;百位数是第三个数字,因此n为3;千位数是第四个数字,因此n为4。
由此,个位数的位权为10的1-1次幂是1,十位数的位权为10的2-1次幂是10、百位数的位权为10的3-1次幂是100、千位数的位权为10的4-1次幂是1000。
1260 = 1 * 10^(4-1) + 2 * 10^(3-1) + 6 * 10^(2-1) + 0 * 10^(1-1)
= 1 * 1000 + 2 * 100 + 6 * 10 + 0 * 1
= 1000 + 200 + 60 + 0
参考资料来源:百度百科-进制