C#。位运算的逻辑谜题。只设置了一位?
不过,这对于 C++ 人员来说应该很容易。但有人问我如何在 C# 中做到这一点。应该差别不大。
如何查明长变量是否仅设置了一个位?
除了一些残酷的力量转移所有位并计算设置的内容之外,我想不出任何东西。
This should be easy for C++ people though. But I was asked how to do it in C#. Shouldnt be much of difference.
How to find out if a long variable has only one bit set?
I cant think anything except some brutal force shifting all bits and counting whats set.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
2 的幂意味着设置了一位。
http://aggregate.org/MAGIC/#Is%20Power%20of%202
编辑:
允许零情况:
Powers of 2 would mean a single bit is set.
http://aggregate.org/MAGIC/#Is%20Power%20of%202
EDIT:
To allow for the zero case:
在 C++ 中:
解释: v &如果仅设置了一位或 v == 0,则 (v - 1) == 0。
In C++:
Explanation: v & (v - 1) == 0 if only one bit is set or v == 0.
刚刚在 PHP 中尝试过:
Just tried it in PHP: