十进制、二进制、八进制、十六进制之间的互相转换。
进制转换分为正数和负数两部分。负数部分需涉及到字节数与补码知识,有点复杂,这里暂时不作介绍。
下面为正数的进制转换:
1.任意进制转成十进制
任意进制转十进制,这个“任意”数为“基”数。个位数的“权”数为“基”数的0次方,十位数的“权”数为“基”数的1次方,百位数的“权”数为“基”数的2次方,依次类推。
转换方法:各个位数上的数分别乘以权数,再求和。
举例1-1:二进制101101.101转换成十进制
1×25+0×24+1×23+1×22+0×21+1×20+1×2-1+0×2-2+1×2-3=32+8+4+1+0.5+0.125=45.625
由于0乘任意数都为o,所以可简化为:
1×25+1×23+1×22+1×20+1×2-1+1×2-3=32+8+4+1+0.5+0.125=45.625
所以,二进制101101.101等于十进制45.625。
举例1-2:八进制1234转换成十进制
1×83+2×82+3×81+4×80=512+128+24+4=668
所以,八进制1234等于十进制668。
举例1-3:十六进制1D2C转换成十进制
这里,十六进制的A、B、C、D、E、F,需转成对应的十进制表示,分别为10、11、12、13、14、15。
1×163+13×162+2×161+12×160=4096+3328+32+12=7468
所以,十六进制1D2C等于十进制7468。
2.十进制转换成任意进制
分为整数部分和小数部分。
1)整数部分转换方法:除“基”数取余法。
举例2-1-1:十进制6转成二进制
6÷2=3余0
3÷2=1余1
1÷2=0余1
取余数,从下往上排列,为110
所以,十进制6等于二进制110。
举例2-1-2:十进制668转成八进制
668÷8=83余4
83÷8=10余3
10÷8=1余2
1÷8=0余1
取余数,从下往上排列,为1234
所以,十进制668等于八进制1234。
举例2-1-3:十进制668转成十六进制
668÷16=41余12
41÷16=2余9
2÷16=0余2
取余数,从下往上排列,同时将12转变为C。
所以,十进制668等于十六进制29C。
2)小数部分转换方法:乘“基”数取整法。
举例2-2-1:十进制0.8125转成二进制
0.8125×2=1.625
0.625×2=1.25
0.25×2=0.5
0.5×2=1
从上往下取整数,前面再加小数点。
所以,十进制0.8125等于二进制0.1101。
举例2-2-2:十进制0.8125转成八进制
0.8125×8=6.5
0.5×8=4
从上往下取整数,前面再加小数点。
所以,十进制0.8125等于八进制0.64。
举例2-2-3:十进制0.8转成十六进制
0.8*16=12.8
0.8*16=12.8
……
从上往下取整数,前面再加小数点,同时12转换成C。
所以,十进制0.8等于十六进制0.CCC……
3.二进制、八进制、十六进制互相转换
三者关系表:
二进制 十六进制 八进制 8421、421关系
0000 0 0 0
0001 1 1 1
0010 2 2 2
0011 3 3 2+1=3
0100 4 4 4
0101 5 5 4+1=5
0110 6 6 4+2=6
0111 7 7 4+2+1=7
1000 8 8
1001 9 8+1=9 二进制与十六进制的转换表
1010 A 8+2=10
1011 B 8+2+1=11
1100 C 8+4=1
2
1101 D 8+4+1=13
1110 E 8+4+2=14
1111 F 8+4+2+1=15
8421关系:二进制与十六进制之间,每4位二进制的“权值和”对应1位十六进制;
421关系:二进制与八进制之间,每3位二进制的“权值和”对应1位八进制。
举例3-1:二进制101101转成十六进制
101101只有6位,前面要补两个零。
0010 1101,每4位二进制的“权值和”对应1位十六进制(8421关系):
0010→1×21=2
1101→1×23+1×22+0×21+1×20=8+4+1=13,为十六进制D
所以,二进制101101等于十六进制2D。
举例3-2:二进制10110101转成八进制
10110101只有8位,前面要补一个零。
010 110 101,每3位二进制的“权值和”对应1位八进制(421关系):
010→2
110→4+2=6
101→4+1=5
所以,二进制10110101等于八进制265。
举例3-3:二进制0.1011转十六进制(小数部分,原理同上)
1011→8+2+1=11,为十六进制B
所以,二进制0.1011等于十六进制0.B。
另外:
十六进制、八进制转二进制的方法为上面的倒推。
十六进制、八进制的相互转换,都先过渡为二进制。
举例3-4:十六进制2F.D转换成八进制
每1位十六进制对应4为二进制:
2→0010
F→15=8+4+2+1→1111
D→13=8+4+1→1101
因此,十六进制2F.D等于二进制101111.1101
然后,每3位二进制对应1位八进制,位数不足补零:
101 111 . 110 100
101→4+1=5
111→4+2+1=7
110→4+2=6
100→4
得,八进制为57.64。
所以,十六进制2F.D等于八进制57.64。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论