C语言-二进制、八进制、十进制、十六进制相互转换

C语言-二进制、八进制、十进制、十六进制相互转换除2取余,倒序排列,高位补0。2^8,2^7,2^6,2^5,2^4,2^3,2^2,2^1,2^0,0×2^0=0。

大家好,欢迎来到IT知识分享网。

C语言-二进制、八进制、十进制、十六进制相互转换

①十进制(正整数)转二进制

除2取余,倒序排列,高位补0

66÷2=33余0

33÷2=16余1

16÷2=8余0

8÷2=4余0

4÷2=2余0

2÷2=1余0

1÷2=0余1

倒序

66对应二进制0

②十进制(小数)转二进制

乘2取整

0.66×2=1.32取整1

0.32×2=0.64取整0

0.64×2=1.28取整1

0.28×2=0.56取整0

0.56×2=1.12取整1

0.12×2=0.24取整0

0.24×2=0.48取整0

0.48×2=0.96取整0

顺序取8位精度

0.66对应二进制0.

③二进制转十进制(整数)

依次乘2的n次方,再求和

0对应

2^8,2^7,2^6,2^5,2^4,2^3,2^2,2^1,2^0,

0×2^0=0

1×2^1=2

0×2^2=0

0×2^3=0

0×2^4=0

0×2^5=0

1×2^6=64

0×2^7=0

求和得:二进制对应十进制为66

④二进制转十进制(小数)

依次乘2的-n次方,再求和

0.对应

2^0,2^(-1),2^(-2),2^(-3),2^(-4),2^(-5),2^(-6),2^(-7),2^(-8)

0×2^0=0

1×2^(-1)=0.5

1×2^(-3)=0.125

1×2^(-5)=0.03125

求和得:二进制对应十进制为0.65625

因为精度问题,无法返回到0.66

⑤二进制转八进制

三合一,依次乘2的n次方求和

0分为

001、000、010

0×2^2+0×2^1+1×2^0=1

0×2^2+0×2^1+0×2^0=0

0×2^2+1×2^1+0×2^0=2

二进制对应八进制为102

⑥八进制转二进制

除2取余,倒序排列,高位补0

102

1÷2=0余1

高位补0得001

0÷2=0余0

高位补0得000

2÷2=1余0,1÷2=0余1

高位补0得010

八进制对应二进制为00

⑦二进制转十六进制

四合一,依次乘2的n次方求和

0分为

0100、0010

0×2^3+1×2^2+0×2^1+0×2^0=4

0×2^3+0×2^2+1×2^1+0×2^0=2

二进制对应十六进制为42

注意10,11,12,13,14,15

要转换为字母ABCDEF

~

⑧十六进制转二进制

除2取余,倒序排列,高位补0

42

4÷2=2余0,2÷2=1余0,1÷2=0余1,

高位补0得0100

2÷2=1余0,1÷2=0余1,

高位补0得0010

十六进制对应二进制为00

⑨十进制转八进制

除8取余,倒序排列,高位补0

(或通过二进制中转)

66

66÷8=8余2,

8÷8=1余0,

1÷8=0余1,

十进制对应八进制为102

⑩十进制转十六进制

除16取余,倒序排列,高位补0

(或通过二进制中转)

66

66÷16=4余2,

4÷16=0余4,

十进制对应十六进制为42

⑪八进制转十进制

依次乘8的n次方,再求和

102

1×8^2+0×8^1+2×8^0=66

八进制对应十进制为66

⑫十六进制转十进制

依次乘16的n次方,再求和

42

4×16^1+2×16^0=66

十六进制对应十进制为66

⑬八进制转十六进制

用二进制和十进制中转

⑭十六进制转八进制

用二进制和十进制中转

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/60848.html

(0)
上一篇 2024-06-21 19:15
下一篇 2024-06-25 17:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信