但是,这对于C++的人来说应该很容易。但是有人问我如何在C#中做到这一点。不应该有太大的区别。
如何确定一个长变量是否只有位设置了?
除了一些残酷的力量将所有位移动并计数设置的内容外,我什么都没想到。
最佳答案
2的幂表示将置1。
http://aggregate.org/MAGIC/#Is%20Power%20of%202
编辑:
为了允许零情况:
bool singleBit = x>0 && (x&(x-1))==0
但是,这对于C++的人来说应该很容易。但是有人问我如何在C#中做到这一点。不应该有太大的区别。
如何确定一个长变量是否只有位设置了?
除了一些残酷的力量将所有位移动并计数设置的内容外,我什么都没想到。
最佳答案
2的幂表示将置1。
http://aggregate.org/MAGIC/#Is%20Power%20of%202
编辑:
为了允许零情况:
bool singleBit = x>0 && (x&(x-1))==0