目录
十进制对任意进制数转换时,将其除以进制类型取余倒序排列。
其他进制之间的转换使用“8421”法:
1.1.十进制——>二进制(以一个位数为单位进行分割)
8+4+2+1=15可以写成:
2^3+2^2+2^1+2^0=15
若十进制数大于15,则依次按照2的阶次增加数值,且该数值必须大于该十进制数。
比如对于十进制数39(>15):
2^5+2^4+2^3+2^2+2^1+2^0=63
比如:
10=8+2=8+0+2+0
在8 4 2 1
四位数上,只有8 2
上对应有数值,因此记为1
,其它空位记为0
.因此10
转换为二进制为1010
。
再比如
39=32+0+0+4+2+1
在16 8
上空位,则39
转换为十进制为100111
。
1.2.十进制——>八进制(以三个位数为单位进行分割)
八进制数:0 1 2 3 4 5 6 7
比如:
39=32+0+0+4+2+1
根据8 4 2 1
法可得:
(39)_2=100111
利用4 2 1
为一组进行分割,不够用0
补:
1 0 0 | 1 1 1
4 2 1 | 4 2 1
三位为一组,只看对应于1
的4 2 1
,并将满足条件的值相加:
第一组:4 + 0 + 0 = 4
;
第二组:4 + 2 + 1 = 7
。
则:
(39)_8=47
1.3. 十进制——>十六进制(以四个位数为单位进行分割)
同样的取39
为例:其二进制数为100111
,只有六位,以四位为一组时需补0
:
0 0 1 0 | 0 1 1 1
8 4 2 1 | 8 4 2 1
四位为一组,只看对应于1
的8 4 2 1
,并将满足条件的值相加:
第一组:0 + 0 + 2 + 0 = 2
;
第二组:0 + 4 + 2 + 1 = 7
。
则:
(39)_{16}=27
标签:39,转换,开篇,二进制,分割,位数,八进制,十进制,进制 From: https://www.cnblogs.com/jxsme/p/17514521.html注意: 在C语言中,二进制不会被直接识别头部加
0b
,对于八进制需在头部添加0
,对于十六进制则需要在头部添加0x
。