進制介紹
二進制:0,1,滿2進1,以0b或者0B開頭
十進制:0-9,滿10進1。
八進制:0-7,滿8進1,以數字0開頭表示
十六進制:0-9及A/a(10)-F/f(15),滿16進1,以0x或者0X開頭表示,此處的A-F不區分大小寫
舉例說明
int n1 = 0b1010; // 二進制
int n2 = 1010; // 十進制
int n3 = 01010; // 八進制
int n4 = 0x10101; // 十六進制
其他進制轉十進制
二進制【轉】十進制:從最低位右邊開始,將每個位置上的樹提出來,乘以2的(位數-1)次方,然后求和
案例:請將二進制的0b1011轉成十進制的數
0b1011 = 1(2的1-1次方) + 1(2的2-1次方) + 0(2的3-1次方) + 1(2的4-1次方) = 1 + 2 + 0 + 8 = 11;
八進制【轉】十進制:從最低位右邊開始,將每個位置上的樹提出來,乘以8的(位數-1)次方,然后求和
案例:請將八進制的0234轉成十進制的數
0234 = 4(8的1-1次方)+3(8的2-1次方)+2*(8的3-1次方) = 4 + 24 + 128 = 156
十六進制【轉】十進制:從最低位右邊開始,將每個位置上的樹提出來,乘以16的(位數-1)次方,然后求和
案例:請將十六進制的0x23A轉成十進制的數
0x23A = 10(16的1-1次方) + 3(16的2-1次方) + 2*(16的3-1次方) = 10 + 48 + 512 = 570
十進制轉其他進制
十進制轉二進制:將該數不斷除以2,直到商為0為止,然后將每步得到的余數倒過來,就是對應的二進制。
案例:請將 34 轉成二進制
34/2=17,余0
17/2=8,余1
8/2=4,余0
4/2=2,余0
2/2=1,余0
所以十進制34的二進制為:0b100010,因為一個字節有8位所以最終為:0b00100010
十進制轉八進制:將該數不斷除以8,直到商為0為止,然后將每步得到的余數倒過來,就是對應的八進制。
案例:請將131轉成八進制
131/8=16,余3
16/8=2,余0
所以十進制131的八進制為:0203
十進制轉十六進制:將該數不斷除以16,直到商為0為止,然后將每步得到的余數倒過來,就是對應的十六進制。
案例:請將237轉成八進制
237/16=14,余13
因為在16進制中,14用E表示,13用D表示
所以十進制237的十六進制為:0xED
練習
十進制123轉二進制:0b01111011
十進制678轉八進制:01246
十進制8912轉十六進制:0x22D0
答案
0b01111011
01246
0x22D0