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
~
⑬八進制轉十六進制
用二進制和十進制中轉
~
⑭十六進制轉八進制
用二進制和十進制中轉
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!