錯誤計算過程
int b = 5 + 15*16 + 15*16*16 + 2*16*16*16; // 將 E 當作 15 計算
// 結果 b = 12777
正確十六進制權重表
| 十六進制位 | 字符 | 十進制值 |
| 16⁰ | 5 | 5 |
| 16¹ | E | 14 |
| 16² | E | 14 |
| 16³ | 2 | 2 |
正確計算
5 + 14*16 + 14*256 + 2*4096
= 5 + 224 + 3584 + 8192
= 12005 // 與 Convert.ToInt32(0x2EE5) 一致
C# 內置轉換方法
int a = 0x2EE5; // 十六進制字面量直接賦值
int b = Convert.ToInt32("2EE5", 16); // 字符串轉換,指定基數 16
int c = int.Parse("2EE5", System.Globalization.NumberStyles.HexNumber);
避坑提示
- 十六進制 A=10, B=11, C=12, D=13, **E=14, F=15** —— 切記 E/F 不要按順序誤算為 15/16。
- 調試時可用
Console.WriteLine(0x2EE5) 直接輸出十進制驗證。