Mô tả
Dọc cao tốc Hà Nội - Hải Phòng, hàng loạt trạm thu phí điện tử (ETC) sử dụng cảm biến dò từ để nhận diện biển số và mã thẻ của mỗi xe. Trong đợt bảo trì định kỳ, anh Tùng - kỹ sư vận hành - phát hiện firmware cũ của cảm biến đang ghi dữ liệu theo thứ tự bit ngược với chuẩn mới: 8 bit được lưu ngược từ phải sang trái, mà hệ thống giám sát mới lại cần thứ tự bit chuẩn từ trái sang phải.
Anh Tùng cần viết một hàm tiện ích nhận vào một giá trị nguyên không âm nằm trong khoảng từ 0 đến 255 (đúng 8 bit). Công việc gồm hai bước:
- Đảo bit: Lấy biểu diễn nhị phân đúng 8 bit của số đó (bổ sung các số 0 ở phía trước nếu cần), rồi đảo ngược thứ tự 8 bit này để được một số mới.
- Đếm bit 1: Đếm xem trong biểu diễn 8 bit của số mới vừa thu được có bao nhiêu bit mang giá trị 1.
Hãy giúp anh Tùng trả về số bit 1 trong kết quả sau khi đảo.
Đầu vào
Một số nguyên không âm n (0 ≤ n ≤ 255), biểu diễn đúng 8 bit.
Đầu ra
Trả về một số nguyên là lượng bit 1 trong biểu diễn 8 bit của số thu được sau khi đảo thứ tự bit của n.
Ràng buộc
- 0 ≤ n ≤ 255
- Số đầu vào luôn nằm trong khoảng 8 bit không âm, không cần xử lý số âm hay ngoài khoảng.
Ví dụ
Ví dụ 1:
- Đầu vào:
n = 13 13trong 8 bit là00001101.- Đảo ngược chuỗi 8 bit này ta được
10110000. - Số
10110000nhị phân tương ứng176thập phân và có đúng 3 bit mang giá trị 1. - Kết quả:
3
Ví dụ 2:
- Đầu vào:
n = 0 0trong 8 bit là00000000.- Đảo ngược vẫn là
00000000, không có bit 1 nào. - Kết quả:
0