進制是計數規則:滿基數進一位。常用進制:
計算機內存中**所有數據最終以二進制存儲**。
反覆除 2 取餘,逆序排列:
18 / 2 = 9 ... 0 9 / 2 = 4 ... 1 4 / 2 = 2 ... 0 2 / 2 = 1 ... 0 1 / 2 = 0 ... 1 → 10010
反覆除 8 取餘:
18 / 8 = 2 ... 2 2 / 8 = 0 ... 2 → 22
反覆除 16 取餘:
18 / 16 = 1 ... 2 1 / 16 = 0 ... 1 → 12 (即 0x12)
| 進制 | 字面量前綴 | 示例 (18) | printf 佔位符 | 輸出示例 |
|---|---|---|---|---|
| 二進制 | 0b / 0B (C23/GCC擴展) | 0b10010 | 無標準佔位符 | 需手動轉換 |
| 八進制 | 0 | 022 | %o | 22 |
| 十進制 | 無 | 18 | %d / %u | 18 |
| 十六進制 | 0x / 0X | 0x12 | %x / %X | 12 / 12 |
int 佔 4 字節 = 32 位。00000000 00000000 00000000 00010010int a=12; int b=13; → &a > &b,a 在高地址,b 在低地址。按權展開:0b1100 = 1×2³ + 1×2² + 0×2¹ + 0×2⁰ = 12
分解為 2 的冪次和:67 = 64 + 2 + 1 = 2⁶ + 2¹ + 2⁰ = 0b1000011
0 ~ 2ⁿ - 1。例如 3 位:0~7 (0b111);5 位:0~31 (0b11111)。
+18 → 000...010010;-18 → 111...101110。32 位,1 位符號位,31 位數值位:
最大值 2³¹ - 1 = 2,147,483,647 (0x7FFFFFFF)
最小值 -2³¹ = -2,147,483,648 (0x80000000)
x & 1:判斷奇偶(最低位)。x & (x-1):清除最低位 1。x & -x:提取最低位 1。x | (1<:置第 n 位為 1。 x & ~(1<:清第 n 位。 x ^ (1<:翻轉第 n 位。 進制是計算機科學基石。熟練掌握「各進制互轉、C 語言字面量/輸出格式、內存補碼存儲、位運算技巧」,是寫出高效、正確、可移植 C 代碼的前提。建議背誦 2⁰~2¹⁶ 常用冪次值,養成「見十六進制即知二進制位模式」的直覺。