如何在代码中编写二进制数而不使用
Convert.ToInt16("00001000", 2);我希望它非常快,我不想从字符串中读取数字。有没有更快的方法?
发布于 2011-01-07 21:52:37
来自C#语言规范:
2.4.4.2整型文字
整型文字用于写入int、uint、long和ulong类型的值。整数有两种可能的形式:十进制和十六进制。
你可以按你自己的方式去做:
Convert.ToInt16("00001000", 2);或者以十六进制格式表示数字,例如使用0x前缀,如下所示:
0x8我不知道有任何其他的方式。
发布于 2011-01-07 21:46:40
您可以将数字写成十六进制:0x8。
Google Calculator可以在基数之间进行转换。
发布于 2011-01-07 22:42:25
通常,为了避免任何愚蠢的错误,当我定义一个“flag”枚举时,我会使用位移位运算符来指定值,然后让编译器找出它。例如:
[Flags]
enum FlagsEnum
{
Zero = 0,
One = 1 << 0,
Two = 1 << 1,
Four = 1 << 2,
Eight = 1 << 3,
Sixteen = 1 << 4,
ThirtyTwo = 1 << 5,
SixtyFour = 1 << 6,
OneHundredTwentyEight = 1 << 7,
// etc.
}当我不可避免地对枚举进行重新排序和向枚举中添加/删除值时,我发现这种样式更容易维护。
因此,在您的示例中,可以将二进制值"00001000“指定为(1 << 3)。但是,如果你有更复杂的东西,比如"00101000",那么它就不能很好地工作;你可以像(1 << 5) | (1 << 3)这样做,但对于这种情况,我只需要指定十六进制的值。
https://stackoverflow.com/questions/4626053
复制相似问题