`

进制数及之间转换

阅读更多
二进制、八进制、十进制与十六进制的特征对照表如表所示:
进制 基数 数码 计数规则 数的表示法
十进制 10(D) 0~9 逢十进一 (1234)10 或1234D
二进制 2(B) 0、1 逢二进一 (101)2 或101B
八进制 8(O) 0~7 逢八进一 (3467)8 或3467O
十六进制 16(H) 0~9、A~F
(A=10,B=11,C=12,D=13,E=14,F=15) 逢十六进一 (46AF)16 或46AFH
八进制数:C语言中是在数的前面加数字O表示
十六进制数:C语言中是在数的面前加数字0和字母X即0X或0x来表示
(1)整数部分转换
把要转换的十进制数的整数部分不断除以基数2,并记下余数,直到商为0为止。
(N)10=(123)10
123/2=61 (a0=1) 最低整数位
61/2=30 (a1=1)
30/2=15 (a2=0)
15/2=7 (a3=1)
7/2=3 (a4=1)
3/2=1 (a5=1)
1/2=0 (a6=1) 最高整数位
(N)10=(1111011)2
二进制数、八进制数和十六进制数的转换
(2)小数部分转换
对于被转换的十进制数的小数部分则应不断乘以基数2,并记下其整数部分,直到结果的小数部分为0为止。
(N)10=(0.8125)10
0.8125*2=1.625 (b1=1) 最高小数位
0.625*2=1.25 (b2=1)
0.25*2=0.5 (b3=0)
0.5*2=1.0 (b4=1) 最低小数位
(N)10=(0.1101)2
在十进制的小数部分转换中,有时连续乘以2不一定能使小数部分等于0,这说明该十进制小数不能用有限位二进制小数表示。这时,只要取足够多的位数,使其误差达到所要求的精度就可以了。
(N)10=(123)10
123/8=15 (a0=3) 最低整数位
15/8=1 (a1=7)
1/8=0 (a2=1) 最高整数位
(N)10=(173)8
(N)10=(0.8125)8
0.8125*8=6.5 (b1=6) 最高小数位
0.5*8=4.0 (b2=4) 最低小数位
(N)10=(0.64)8
同理十六进制数也是如此
其实,BCD编码在中国大陆称之为“8421码”,用8421码二进制数与八进制数、十进制数、十六进制数相互转换。
1.二进制数–>八进制数
从小数点开始,分别向左右按3位分组转换成对应的八进制数字字符,最后不满3位的,则需补0
具体方法为:
二进制数: 001 101 101 . 101 010
八进制数: 1 5 5 5 2
(001101101.101010)2=(155.52)8
2.八进制数–>二进制数
将每位八进制数用3位二进制数表示即可。
将八进制数(345.64)8转换成二进制数
具体方法为:
八进制数: 3 4 5 . 6 4
二进制数: 011 100 101 110 100
(345.64)8=(11100101.1101)2
3.二进制数–>十六进制数
从小数点开始,分别向左、右按4位分组转换成对应的十六进制数字字符,最后不满4位的,则需补0.
将二进制数(1101101.10101)2转换成十六进制数
具体方法为:
二进制数: 0101 1101 . 1010 1001
十六进制数: 5 D A 9
(1011101.10101001)2=(5D.A9)16
4.十六进制数–>二进制数
将每位十六进制数用4二进制数表示即可。
将十六进制数(A8D.6C)16 转换成二进制数。
具体方法:
十六进制数: A 9 D . 7 C
二进制数: 1010 1001 1101 0111 1100
(A9D.7C)16=(101010011101.011111)2
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics