二进制是由0和1组成
八进制是由0,1,2,3,4,5,6,7这八个数组成
十进制是由0,1,2,3,4,5,6,7,8,9这十个数组成
十六进制是由0,1,2,3,4,5,6,7,8,9这十个数字和A,B,C,D,E,F这六个英文字母(不区分大小写)组成
让我们来看看这些进制之间是如何转化的
一、二进制和十进制相互转化
二进制转化为十进制
从右到左用二进制的每个数去乘以2的相应次方,小数点后则是从左往右。
不带小数点的最右边的次方为0
比如:二进制1010中从右到左次方依次为0,1,2,3。然后再用二进制的每个数乘以相应次方并相加
1010(二进制)=10(十进制)
带小数的二进制转化为十进制要先把整数部分和小数部分分开。整数部分按照不带小数的二进制计算,小数部分和整数部分的进制转化本质相同,都是二进制数乘2的次方相加,只不过小数点之后的次方从左到右依次为-1,-2,-3…。最后把整数部分和小数部分相加。
比如二进制1010.1010中二进制数对应的次方数
标上对应次方数,用二进制的每个数乘以相应次方并相加得
至此,二进制转化为十进制已全部讲解完毕
接下来让我们继续看看十进制转化为二进制是如何操作的吧
2.首先还是不带小数的十进制转化
十进制整数转换为二进制整数采用"除2取余,逆序排列"法。
具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
比如11(十进制)= 1011(二进制)
然后就是带小数的十进制转化
由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。
整数部分已经讲过,小数部分的转化方法如下
十进制的小数转换为二进制的小数,主要是十进制小数部分乘以2,取整数部分(0或1)依次从左往右放在二进制小数点后,直至十进制小数点后为0。例如十进制的0.125,要转换为二进制的小数。0.125x2=0.25中0为十进制的整数部分,把它拿出来放在二进制小数点的后面,然后在0.25x2=0.5中0为十进制的整数部分,继续放在.0后面,然后再0.5x2=1.0,其中1为十进制的整数部分,把它放在.00后面,十进制的小数部分就变成了0.0(如果小数部分乘2之后超过1,则把1拿出来,之后1则变为0,如0.75x2=1.5,把1拿出之后,就变成0.5,然后继续0.5x2=1.0,把1拿出之后,就变成0.0)当小数部分变为0.0,此时恭喜你完成十进制的小数转换,接下来就简单了,直接把整数部分和小数部分合并(注意是合并并不是相加),就完成了带小数点的十进制转化为二进制的任务了。
二、二进制和十六进制的相互转化
二进制转化为十六进制(不带小数点)
方法:取四合一法,即从二进制数中每四位取成一位,接着将这四位二进制按权相加,得到的数就是一位十六位二进制数,然后,按顺序进行排列,得到的数字就是我们所求的十六进制数。
比如1111 1111 1111 1111(二进制)= f f f f (十六进制)
二进制转化为十六进制(带小数点)
把小数部分和整数部分分别做转化,然后直接合并,小数点的位置不变
废话不多说,直接看例子
有二进制数1010.1001,想要转换为十六进制,先把整数部分和小数部分分开,其中整数部分按四位为一位,算出1010(B)= A(H),小数部分也是按四位为一位的运算规则,1001(B)= 9(H),然后直接合并,小数点的位置不变,为A.9(H)。
接下来就是十六进制转化为二进制了,其实就是把上面的反过来,直接看例子,
有十六进制数4.5,其中4(H)= 0100(B),5(H)= 0101(B),直接合并,小数点位置不变,为
0100.0101,值得说明的是,若遇到位数不够的,则需要进行补位处理,整数部分在最左边进行补零,小数部分在最右边进行补零,比如111.001,进行十六进制的转换,对于整数部分,由于111只有三位,所以要在最左边进行补零,补为0111,就等于7(H),对于小数部分,001不够四位,则在最右边进行补零,补为0010,就等于2(H),最后进行合并,小数点位置不变,7.2(H)。
接下来继续看看二进制和八进制的转化关系吧,由于2的3次方等于8的1次方,所以一个八进制位就等于3个二进制位,知道这个规则之后,就按照二进制转化为十六进制的操作进行处理就可以了,只是要记得此时不是四位,而是三位。