①十进制(正整数)转二进制,今天小编就来聊一聊关于c语言八进制转换十六进制代码?接下来我们就一起去研究一下吧!

c语言八进制转换十六进制代码(C语言-二进制八进制)

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

倒序1000010

66对应二进制01000010

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

乘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.10101000

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

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

01000010对应

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.10101000对应

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次方求和

01000010分为

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

八进制对应二进制为001000010

⑦二进制转十六进制

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

01000010分为

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

十六进制对应二进制为001000010

⑨十进制转八进制

除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

⑬八进制转十六进制

用二进制和十进制中转

⑭十六进制转八进制

用二进制和十进制中转