Qualcuno potrebbe spiegare perché questi due codici Java si comportano in modo diverso? Il primo conteggia correttamente il numero di bit ma il secondo visualizza solo 1 o 0 per i numeri diversi da zero. Non capisco cosa sta succedendo.Utilizzo bitwise e operatore e + in Java per risultati incoerenti
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);
}
Oh, capisco ora. grande! Grazie mille :) – Shimano