C語言進位轉換學不會,看了這個教程,你還算是學不會的話,來找我!!!
進位介紹對於整數,有4種表示方式:
舉例說明:
int num = 210;//十進位
int num2 = 01010;//八進位
int num3 = 0x1010;// 十六進位
規則:從最低位開始(從右到左),將每個位上的數提取出來,乘以2的(位數-1)次方,然後求和。
二進位 1011 轉換成十進位:
二進位 1011 = 1 * 2^0 + 1 * 2^1 + 0 * 2^2 + 1 * 2^3 = 1 + 2 + 0 + 8 = 11
規則:從低位開始,將每個位上的數提取出來,乘以8的(位數-1)次方,然後求和
八進位0123轉換成十進位:
0123 = 3 * 8^0 + 2 * 8^1 + 1 * 8^2 = 3 + 16 + 64 = 83
規則:從最低位開始,將每個位上的數提取出來,乘以16的(位數-1)次方,然後求和
將 0x34A 轉換成十進位:
0x34A = 10 * 16^0 + 4 * 16^1 + 3 * 16^2 = 10 + 64 + 768 = 842
規則:將該數不斷除以2,直到商為0 為止。然後將每步得到的餘數倒過來,就是對應的二進位
將 56 轉成二進位:
規則:將該數不斷除以8,直到商為0為止,然後將每步得到的餘數倒過來,得到對應的八進位
156 轉換成八進位為:234
規則:將該數不斷除以16,直到商為0為止,然後將每步得到的餘數倒過來,得到對應的十六進位
356 轉換成十六進位為:0x164
規則:從低位開始,將二進位數每三位一組(二進位111表示7),轉成對應的八進位數即可。八進位是以 0 開頭。
11010101 轉換成八進位:0325
規則:從低位開始,將二進位每四位一組(二進位1111表示0xF),轉成對應的十六進位即可
11010101 轉換成十六進位:0xD5 。0101 為5,1101 為 13,對應著十六進位的D
規則:將八進位數每1位,轉換成對應的一個3位的二進位數即可。
將 0237 轉成二進位:10 011 111
或者直接先把八進位的數轉換成十進位,然後再轉換成二進位。
1、將八進位的0237轉換為十進位:7*8^0 + 3*8^1 + 2*8^2 = 159
2、將十進位的159轉換為二進位:10011111
規則:將十六進位每1位,轉換成對應的4位的一個二進位數即可。
將 0x23B 轉換成二進位:10 0011 1011