Виклик
З огляду на ціле число у форматі доповнення 32-розрядних двох , поверніть індекс другої найменш значущої нульової цифри у двійковому поданні, де індекс 0
являє собою найменш значущий біт, а індекс 31
являє собою найзначніший біт.
Якщо немає другого нуля, ви можете повернути 0, будь-яке негативне число, будь-яке хибне значення або повідомити про помилку таким чином, що має сенс для вашої мови.
Якщо ви хочете, ви можете використовувати 1-індексацію, але нижче наведені тестові випадки використовуватимуть 0-індексацію.
Ви можете використовувати непідписані цілі числа, якщо хочете; якщо так, то ви повинні обробити цілі числа в діапазоні [0, 2^32)
. Якщо ви використовуєте підписані цілі числа, ви повинні обробити цілі числа в діапазоні [-2^31, 2^31)
. У тестових випадках тут будуть використані підписані цілі числа, але зауважте, що -x
(підписаний) є 2^32 - x
(непідписаний).
Випробування
0 (0b00) -> 1 1 (0b001) -> 2 10 (0b1010) -> 2 11 (0b01011) -> 4 12 (0b1100) -> 1 23 (0b010111) -> 5 -1 (0b11..11) -> Немає -2 (0b11..10) -> Немає -4 (0b11..00) -> 1 -5 (0b11..1011) -> Немає -9 (0b11..10111) -> Немає 2 ^ 31-2 (0b0111..1110) -> 31
Оцінка балів
Це код-гольф , тому найкоротша відповідь на кожній мові виграє!
[0, 2^32)
.
0b...
як вхідні дані?
2^32-1
тому що я не повинен був повертатися 33
.