Questions tagged «hammingweight»


22
优雅地确定是否有多个布尔值是“ true”
我有一组五个布尔值。如果其中一个以上为真,则我想执行特定功能。您能想到的最优雅的方法是什么使我可以在单个if()语句中检查此条件?目标语言是C#,但我也对其他语言的解决方案感兴趣(只要我们不谈论特定的内置函数)。 一个有趣的选择是将布尔值存储在一个字节中,进行右移并与原始字节进行比较。诸如此类,if(myByte && (myByte >> 1))但这需要将单独的布尔值转换为字节(通过bitArray吗?),这似乎有点(双关语意)笨拙... [编辑]对不起,应该是 if(myByte & (myByte - 1)) [/ edit] 注意:当然,这与经典的“人口统计”,“横向增加”或“重锤”编程问题非常接近-但并不完全相同。我不需要知道设置了多少个位,只要它不止一个即可。我希望有一种更简单的方法来完成此任务。
78 c#  hammingweight 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.