C语言中的进制转换
計算機中,一個數值可以用不同的進制形式來表示,不管是哪種進制形式表示,數值本身是不會發生變化的,各個機制之間可以實現轉換
十進制轉二進制
采用除2取余的方式,將要轉換的數,除以2,得到商和余數,將商繼續除以2,得到商和余數,直到商為0,最后,將所有的余數倒序排列,即可
比如,十進制的6,表示二進制為110
二進制轉十進制
將要轉換的數,從右到左用二進制位上的每個數,乘以2的相應次方,右邊第一位數乘以2的0次方,第二位數乘以2的1次方,第n位數乘以2的n-1次方,最后,把所有的結果相加,即可
比如,二進制的01100100,轉換成十進制為100
二進制轉八進制
就是將二進制數,從右向左,每3位分為一段,如果不足3位,用0補齊,然后,將二進制每段的3位,轉換為八進制的一位,最后組合即可
二進制、八進制數值對照表
000——0
001——1
010——2
011——3
100——4
101——5
110——6
111——7
比如,將二進制數000101010,表示八進制為0052
注意,八進制必須以0開頭
二進制轉十六進制
與八進制類似,不同的是將二進制數,每4位分成一段,如果不足4位用0補齊,將二進制數,每4位分成一段,然后將二進制的每一段轉換為十六進制的一位,最后組合即可
二進制與十六進制對照表
0000——0
0001——1
0010——2
0011——3
0100——4
0101——5
0110——6
0111——7
1000——8
1001——9
1010——A
1011——B
1100——C
1101——D
1110——E
1111——F
比如,二進制數01010110,轉換為十六進制為0x56,或者為0X56
注意,十六進制必須以0x,或者0X開頭
總結