如何将十进制数69.2转换成二进制、八进制、十六进制?
先拿转成二进制为例,手算
-整数部分:
写出二进制每位上的基数,个位是1,高位是低位乘以2,写到比69大为止
128 64 32 16 8 4 2 1,
0 1 0 0 0 1 0 1,
用69除以最高位上的基数得到商和余数=69/128=0[69],
将商写到128这位下面:
用上步得数的余数继续计算=69/64=1[5],
将1写到64下面:
5/32=0[5],
5/16=0[5],
5/8=0[5],
5/4=1[1],
1/2=0[1],
1/1=1[0],
计算直到余数为0停止,
如果还有位没算就都填0,69转换成二进制数为1000101。
-小数部分:取小数部分乘以2,
取69.2的小数部分乘以2=0.2*2=0.4,
结果的整数部分就是当前小数位[1000101.0],
取上步结果的小数部分乘以2=0.4*2=0.8[1000101.00],
0.8*2=1.6[1000101.001],
0.6*2=1.2[1000101.0011],
0.2*2=0.4[1000101.00110],
0.4*2=0.8[1000101.001100],
0.8*2=1.6[1000101.0011001],
0.6*2=1.2[1000101.00110011],
计算到达到指定位数或者小数部分为0时结束。
结果69.2转换为二进制数为1000101.00110011
上述部分有乘以2的,
换成乘以n那么就可以转换成n进制了,
八进制乘以8,
十六进制乘以16。
有了二进制的话转换成八进制有简单算法:
八进制每位相当于二进制3位,
1000101.00110011=[001][000][101].[001][100][110]=105.146o
同理十六进制每位相当于二进制4位:
1000101.00110011=[0100][0101].[0011][0011]=45.33H。