首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> ASP.NET 基礎

C# 進制轉換全攻略:二進制、八進制、十進制、十六進制互轉

     編輯:ASP.NET 基礎

.NET 內建進制轉換核心方法

.NET Framework 提供兩個強大的靜態方法,輕鬆實現任意進制 (2/8/10/16) 字串與數值的雙向轉換:

  • Convert.ToInt32(string value, int fromBase):將指定進制字串轉為 int 數值。fromBase 僅支援 2、8、10、16。
  • Convert.ToString(int value, int toBase):將 int 數值轉為指定進制字串。toBase 同樣限制為 2、8、10、16。

基本用法範例


// 二進制字串 "0010" 轉十進制數值 2
int val = Convert.ToInt32("0010", 2); // 結果: 2

// 十進制 2 轉二進制字串 "10" (注意:不保留前導零)
string bin = Convert.ToString(2, 2); // 結果: "10"

通用進制轉換封裝方法

/// <summary>
/// 任意支援進制間字串轉換
/// </summary>
/// <param name="value">原始數值字串</param>
/// <param name="fromBase">源進制 (2/8/10/16)</param>
/// <param name="toBase">目標進制 (2/8/10/16)</param>
/// <returns>目標進制字串</returns>
public string ConvertBase(string value, int fromBase, int toBase)
{
    // 1. 統一轉為十進制整數
    int intValue = Convert.ToInt32(value, fromBase);
    // 2. 再轉為目標進制字串
    return Convert.ToString(intValue, toBase);
}

// 使用範例
string hex = ConvertBase("10", 10, 16);    // "A"
string oct = ConvertBase("A", 16, 8);      // "12"
string bin = ConvertBase("12", 8, 2);      // "1010"

進階應用技巧

  1. 保留固定位數:Convert.ToString 不補前導零,需自行 PadLeft。
    string bin8 = Convert.ToString(5, 2).PadLeft(8, '0'); // "00000101"
  2. 處理大數值:超出 Int32 範圍時,使用 Convert.ToInt64 / Convert.ToString(long, int)。
  3. 自定義進制 (如 Base64):.NET 內建不支援,需自行實作或使用 System.Convert.ToBase64String。
  4. 驗證輸入合法性:轉換前建議用正則檢查字串是否符合源進制格式,避免拋出 FormatException。

常見進制對照表

十進制二進制八進制十六進制
10101012A
25511111111377FF
1024100000000002000400

掌握這兩個核心方法,配合簡單封裝,即可應對絕大多數進制轉換業務場景,無需引入第三方庫。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved