用于写入位的二进制表示法 - C#
本文关键字:表示 二进制 用于 | 更新日期: 2023-09-27 18:35:08
有一些符号可以在 C# 中写入数字,以判断您编写的内容是浮点数、双精度数、整数等。
所以我想写一个二进制数,我该怎么做?
假设我有一个字节:
byte Number = 10011000 //(8 bits)
我应该如何编写它而不会费力地知道二进制中的 10011000 = 十进制中的 152?
PS:解析字符串是完全不可能的(我需要性能)
从
0b
前缀来获取类似于十六进制0x
的二进制文件
int x = 0b1010000; //binary value of 80
int seventyFive = 0b1001011; //binary value of 75
试一试
你可以这样写:
int binaryNotation = 0b_1001_1000;
在 C# 7.0 及更高版本中,可以使用下划线"_"作为数字分隔符,包括十进制、二进制或十六进制表示法,以提高易读性。
除了
解析字符串之外,恐怕没有办法做到这一点:
byte number = (byte) Convert.ToInt32("10011000", 2);
当然,不幸的是,您将无法像这样分配常量值。
如果你发现自己经常这样做,我想你可以在字符串上写一个扩展方法,使事情更具可读性:
public static class StringExt
{
public static byte AsByte(this string self)
{
return (byte)Convert.ToInt32(self, 2);
}
}
然后代码将如下所示:
byte number = "10011000".AsByte();
我不确定这会是一个好主意...
就个人而言,我只使用十六进制初始化器,例如
byte number = 0x98;