使用int中的位数组中的不同元素的数量

时间:2018-04-12 15:00:04

标签: c++ bit-manipulation

我有这个代码
我的代码有什么问题 它必须显示有多少不同的元素

0

什么是错误检查输出我无法找到我不工作的原因

1 个答案:

答案 0 :(得分:0)

问题在于:

if(0 == maps&(1<<k)){

等于运算符==的优先级高于按位运算符&。所以上面对此进行了评估:

if ((0 == maps) & (1 << k )) {

您需要添加括号以获得所需的行为:

if (0 == (maps & (1 << k))) {

您需要在cout电话中执行相同操作:

cout<<" "<<(int)((maps&(1<<k))==0);