首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# 十六進制轉十進制誤區:E=14 而非 15,手算驗證 0x2EE5 = 12005

     編輯:程式設計綜合問答

錯誤計算過程

int b = 5 + 15*16 + 15*16*16 + 2*16*16*16; // 將 E 當作 15 計算
// 結果 b = 12777

正確十六進制權重表

十六進制位字符十進制值
16⁰55
16¹E14
16²E14
16³22

正確計算

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) 直接輸出十進制驗證。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved