我正在编写一些代码来计算整数的2的补码格式中出现的1的数量。但是,当我在java中使用按位移位运算符时,我收到语法错误:
class suan {
int bitCount(int inputInt) {
if (inputInt == 0)
return 0;
else if (inputInt > 0) {
int c = 0;
int origin = inputInt;
for (int i=0; i<32; i++) {
inputInt=>>1;
if (origin == inputInt*2)
c++;
origin = inputInt;
}
return c;
} else {
return 32-bitCount(-1*inputInt-1);
}
}
}
Eclipse说“inputInt =&gt;&gt; 1”在令牌上有“语法错误”&gt;&gt;“,删除此令牌。”但是我看不出它有什么问题。我以前没有在Java中使用按位运算符,所以我可能忽略了一些愚蠢的错误。谢谢你的帮助。
答案 0 :(得分:2)
inputInt=>>1;
应为inputInt >>= 1;