快捷搜索:  汽车  科技

c语言二进制与十六进制之间转换(C语言-二进制八进制)

c语言二进制与十六进制之间转换(C语言-二进制八进制)1÷2=0余12÷2=1余016÷2=8余08÷2=4余04÷2=2余0

c语言二进制与十六进制之间转换(C语言-二进制八进制)(1)

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

除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

⑬八进制转十六进制

用二进制和十进制中转

⑭十六进制转八进制

用二进制和十进制中转

猜您喜欢: