C# 中的二进制值:存储和显示二进制值
二进制数是计算的重要组成部分,了解如何在 C# 中使用二进制数对于处理底层操作、位操作和高效存储至关重要。 在本文中,我们将按照 Tim Corey 的视频Binary in C#分解在 C# 中存储和显示二进制值的关键概念:10 分钟内存储和显示二进制值。
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前缀存储在整数类型中。 2.打印整数时默认使用十进制表示,需要明确转换为二进制输出。 Convert.ToString(value, 2)有助于将数字转换为二进制格式。PadLeft确保了一致的位长表示。 5.根据使用情况,您可以将二进制数存储在不同的数字类型中。
有了这些技术,在 C# 中处理二进制值就会变得更加简单和直观。要更好地理解该主题,请观看他的完整视频。




