Ai đó có thể giải thích tại sao hai đoạn mã Java này hoạt động khác nhau? Đầu tiên một cách chính xác đếm số bit nhưng số thứ hai chỉ hiển thị 1 hoặc 0 cho số không khác. Tôi không hiểu chuyện gì đang xảy ra.Sử dụng bitwise & operator và + trong Java cho kết quả không nhất quán
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);
}
Ồ..Tôi hiểu ngay bây giờ. tuyệt quá! Cảm ơn rất nhiều :) – Shimano