本單元重點回顧

  1. K 進制=位值系統:每一格放 0 \sim K-1,右起第 i 位的位值是 K^i;整個數=每位數字 × 位值加總。n 個二進制位最多數到 2^n - 1

  2. 二進制 ↔ 十六進制2^4 = 16,二進制每 4 位一組恰對應 1 個十六進制位(A ~ F10 \sim 15);1 位元組=2 個十六進制位。程式裡可用 0b0x 字面常數直接寫。

  3. 進制字串 → 整數:累積式 val = val * K + digit(高位起,推薦)或位值累加(低位起);字元轉數值靠 8.2c - '0'c - 'A' + 10。累積變數用 long long。

  4. 整數 → 進制字串:反覆 x % K 取個位、x / K 去個位;取出順序是反的,reverse 或倒著印;x = 0 一定要特判。

  5. stoistoll 第三參數2 \sim 36 進制字串一行轉整數,大小寫皆可;反方向沒有同樣順手的現成函式,16.4 的手寫版就是競程的標準做法。

  6. 2^{10} \approx 10^32^{20} \approx 10^62^{30} \approx 10^9;int 上限=2^{31} - 1 = 2147483647、long long 上限=2^{63} - 1 \approx 9.2 \times 10^{18}——看到範圍先估型態。

  7. 大數=一格一位的陣列:long long 裝不下就用字串讀入、轉成「個位住索引 0」的反向 vector<int>,模擬直式運算;反向存是為了個位對齊與進位好擴充。

  8. 大數加法:逐位相加 → 統一進位(C[i+1] += C[i] / 10; C[i] %= 10;)→ 去前導零(至少留一位)→ 倒著印。

  9. 大數乘法A[i] * B[j] 歸戶到 C[i + j](位值 10^{i+j}),先全部累加、最後統一進位;累加陣列用 long long;運算量 O(nm)——兩層迴圈。