如何在代码中编写二进制数而不使用
Convert.ToInt16("00001000", 2);我希望它非常快,我不想从字符串中读取数字。有没有更快的方法?
发布于 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
复制相似问题