Giới thiệu
Cho số nguyên không âm, đếm số bit 0 trong biểu diễn nhị phân 8-bit (đệm 0 ở đầu nếu cần).
Ví dụ
- 50 = 00110010 (8-bit) → 3 bit 0 (tính cả 2 bit 0 đệm đầu)
- 10 = 00001010 → 6 bit 0
Ý tưởng giải thuật
- Đếm tổng bit (8 bit cố định).
- Đếm bit 1: dùng
n & 1và dịch phảin >>= 1cho đến khi n = 0. - Bit 0 = tổng bit - bit 1.
Ví dụ triển khai (C++)
#include <iostream>
using namespace std;
int countUnsetBits8(int n) {
int totalBits = 8;
int setBits = 0;
int temp = n;
while (temp) {
setBits += temp & 1;
temp >>= 1;
}
return totalBits - setBits;
}
int main() {
int n = 50;
cout << "8-bit cua " << n << ": ";
for (int i = 7; i >= 0; i--)
cout << ((n >> i) & 1);
cout << "\nSo bit 0: " << countUnsetBits8(n); // 3
return 0;
}
Đầu vào
50
Đầu ra
8-bit cua 50: 00110010 So bit 0: 3