誰かがこの2つのJavaコードが異なる動作をする理由を説明してもらえますか?最初のビットは正しくビット数をカウントしますが、2番目のビットはゼロ以外の数の場合は1または0を表示します。私は何が起こっているのか分からない。 JavaではJavaでbitwise&operatorと+を使用すると一貫性のない結果が返る
public static void printNumUnitBits(int n){
int num=0;
for(int i=0;i<32;i++){
int x=n&1;
num=num+x;
n=n>>>1;
}
System.out.println("Number of one bits:"+num);
}
public static void printNumUnitBits(int n){
int num=0;
for(int i=0;i<32;i++){
num=num+n&1;
n=n>>>1;
}
System.out.println("Number of one bits:"+num);
}
ああ今、理解しています。すばらしいです!ありがとうたくさん:) – Shimano