Thử thách
Cho một số nguyên ở định dạng bổ sung hai bit 32 bit , trả về chỉ số của chữ số 0 có ý nghĩa nhỏ thứ hai trong biểu diễn nhị phân, trong đó một chỉ số 0đại diện cho bit có trọng số thấp nhất và chỉ số 31đại diện cho bit có ý nghĩa nhất.
Nếu không có số 0 thứ hai, bạn có thể trả về 0, bất kỳ số âm nào, bất kỳ giá trị sai lệch nào hoặc báo cáo lỗi theo cách có ý nghĩa trong ngôn ngữ của bạn.
Bạn có thể sử dụng lập chỉ mục 1 nếu bạn thích, nhưng các trường hợp thử nghiệm bên dưới sẽ sử dụng lập chỉ mục 0.
Bạn có thể sử dụng số nguyên không dấu nếu bạn thích; nếu bạn làm như vậy, thì bạn phải xử lý các số nguyên trong phạm vi [0, 2^32). Nếu bạn sử dụng số nguyên đã ký, bạn phải xử lý số nguyên trong phạm vi [-2^31, 2^31). Các trường hợp thử nghiệm ở đây sẽ sử dụng số nguyên đã ký, nhưng lưu ý rằng -x(đã ký) là 2^32 - x(chưa ký).
Các trường hợp thử nghiệm
0 (0b00) -> 1 1 (0b001) -> 2 10 (0b1010) -> 2 11 (0b01011) -> 4 12 (0b1100) -> 1 23 (0b010111) -> 5 -1 (0b11..11) -> Không -2 (0b11..10) -> Không -4 (0b11..00) -> 1 -5 (0b11..1011) -> Không -9 (0b11..10111) -> Không 2 ^ 31-2 (0b0111..1110) -> 31
Chấm điểm
Đây là môn đánh gôn , vì vậy câu trả lời ngắn nhất trong mỗi ngôn ngữ sẽ thắng!
[0, 2^32).
0b...làm đầu vào?
2^32-1vì tôi không nên quay lại 33.