C# 中的二進位值:存儲和顯示二進位值
二進位數字是計算的基本要素,了解如何在C#中操作它們對於處理底層操作、位元操作及高效存儲至關重要。 在本文中,我們將解構在C#中存儲及顯示二進位數值的關鍵概念,參考Tim Corey的影片,Binary in C#: Storing and Displaying Binary Values in 10 minutes or less。
Tim以簡潔但詳盡的方式解釋了這個主題,使其更容易理解。讓我們一步步跟隨他的解釋,探索在C#中二進位數值如何運作。
Storing Binary Values in C
Tim首先回答核心問題:我們如何在C#中存儲一個二進位數字? 他解釋說,像0b101這樣的二進位數表示基底2的數值,並儲存在整數變數中。
為了存儲一個二進位數值,Tim演示了以下語法:
int binaryValue = 0b101; // Represents the decimal number 5
int binaryValue = 0b101; // Represents the decimal number 5
在這裡,0b是一個前綴,使C#將隨後的數字解讀為二進位數字。 Tim強調0b101相當於十進位記法中的5。
他還提到,添加前導零(例如,0b00000101)不會改變數值。 系統仍然將其解釋為5,因為那些額外的零在數值上並無意義。
Printing Binary Values in C
一旦我們儲存了一個二進位數值,下一步就是顯示它。 Tim指出一個有趣的行為:當您打印一個二進位存儲的值時,C#預設將其轉換為十進位。
例如:
Console.WriteLine($"Binary value is: {binaryValue}");
// Outputs: Binary value is: 5
Console.WriteLine($"Binary value is: {binaryValue}");
// Outputs: Binary value is: 5
即便0b101形式存儲,控制台將輸出5。Tim解釋說,C#在顯示數值時預設使用基底10。
若要以二進位格式查看數值,我們需要進行轉換。
將整數轉換為二進位格式
Tim介紹了一種簡單的方法將整數格式化為二進位字串:
string binaryString = Convert.ToString(binaryValue, 2);
Console.WriteLine($"Binary representation: {binaryString}");
// Outputs: Binary representation: 101
string binaryString = Convert.ToString(binaryValue, 2);
Console.WriteLine($"Binary representation: {binaryString}");
// Outputs: Binary representation: 101
他解釋說,Convert.ToString(value, 2)將整數轉換為其二進位表示形式的字串。 這樣,如果您儲存101而不是5。
用前導零填充二進位數值
隨後,Tim處理了顯示二進位數字時經常出現的問題:用前導零一致格式化它們。 在許多情況下,我們希望二進位數以8位格式顯示(例如,101)。
他解釋如何使用PadLeft來達成這個效果:
string formattedBinary = binaryString.PadLeft(8, '0');
Console.WriteLine($"Formatted binary: {formattedBinary}");
// Outputs: Formatted binary: 00000101
string formattedBinary = binaryString.PadLeft(8, '0');
Console.WriteLine($"Formatted binary: {formattedBinary}");
// Outputs: Formatted binary: 00000101
在這裡,PadLeft(8, '0')確保二進位字串始終至少有8個字元,使用零填充任何缺少的空間。 這在處理字節大小的二進位數值時特別有用。
Tim澄清說,PadLeft使用的是字符,而不是字串。
十進位數字的二進位表示
Tim提出的另一個重要觀點是,您不必以二進位格式輸入數字(0b記法)即可獲得其二進位表現。
例如,您可以取一個標準的十進位數字並將其轉換為二進位:
int decimalNumber = 12;
string binaryRepresentation = Convert.ToString(decimalNumber, 2);
Console.WriteLine($"Binary equivalent of {decimalNumber} is {binaryRepresentation}");
// Outputs: Binary equivalent of 12 is 1100
int decimalNumber = 12;
string binaryRepresentation = Convert.ToString(decimalNumber, 2);
Console.WriteLine($"Binary equivalent of {decimalNumber} is {binaryRepresentation}");
// Outputs: Binary equivalent of 12 is 1100
在這裡,數字12被儲存為一個十進位整數,但當轉換後,它正確地以二進位形式輸出1100。
Tim強調,這項技術對於除錯和理解數字在位元層級的存儲方式很有用。
將二進位數字存入不同的數據類型
Tim還觸及了二進位數值可儲存在不同的數值數據類型中。儘管整數(long。
例如:
uint unsignedBinary = 0b1010; // 10 in decimal
long largeBinary = 0b1100110011; // A longer binary number
uint unsignedBinary = 0b1010; // 10 in decimal
long largeBinary = 0b1100110011; // A longer binary number
使用long則可以容納更大的數字。
Tim指出,了解這些區別在進行底層操作如位元移位和掩碼時非常有幫助。
最終想法
Tim最後總結了主要要點:
- 二進位數字以
0b前綴儲存於整數類型中。 - 預設情況下,打印整數會顯示為十進位,需明確轉換才能輸出二進位格式。
Convert.ToString(value, 2)有助於將數字轉換為二進位格式。PadLeft確保一致的位長表示。- 您可以根據使用情境將二進位數字存在不同的數值類型中。
使用這些技巧,在C#中操作二進位數值將變得更加容易且直觀。如需更深入了解此主題,請觀看他的完整影片。



