C#中的二進制值:儲存和顯示二進制值
二進位數字是計算機運算中不可或缺的一部分,理解如何在C#中使用它們對於處理低層次操作、位運算及高效儲存非常重要。 在這篇文章中,我們將根據Tim Corey的影片,分解在C#中儲存和顯示二進位值的關鍵概念,Binary in C#: Storing and Displaying Binary Values in 10 minutes or less。
Tim以簡潔而詳細的方式講解這個主題,使其更容易理解。我們將逐步瀏覽他的解釋,探索C#中二進位值的運作方式。
Storing Binary Values in C
Tim首先探討一個核心問題:我們如何在C#中儲存一個二進位數字? 他解釋說,二進位數字,如0b101,表示二進制值,並儲存在整數變數中。
為了儲存二進位值,Tim演示了以下語法:
int binaryValue = 0b101; // Represents the decimal number 5int 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: 5Console.WriteLine($"Binary value is: {binaryValue}");
// Outputs: Binary value is: 5儘管0b101,控制台將輸出5。Tim解釋說,C#在顯示數值時,預設為十進制。
要查看二進位格式的值,我們需要進行轉換。
將整數轉換為二進位格式
Tim介紹了一種將整數格式化為二進位字串的簡單方法:
string binaryString = Convert.ToString(binaryValue, 2);
Console.WriteLine($"Binary representation: {binaryString}");
// Outputs: Binary representation: 101string 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: 00000101string 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 1100int 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 numberuint unsignedBinary = 0b1010; // 10 in decimal
long largeBinary = 0b1100110011; // A longer binary number關於long可以容納更大的數字。
Tim指出,了解這些區別對於進行位移和遮罩等低層次操作時很有幫助。
最後的想法
Tim總結了這些關鍵要點:
- 二進位數字使用
0b前綴儲存在整數型別中。 - 列印整數預設為十進制表示,需要顯式轉換以輸出二進位格式。
Convert.ToString(value, 2)可以幫助將數字轉換為二進位格式。PadLeft確保一致的位長度表示。- 您可以根據需要,在不同的數字型別中儲存二進位數字。
使用這些技術,在C#中處理二進位值變得更加容易和直觀。要更好地理解這一主題,請觀看他的完整影片。




