Desafío
Dado un número entero en formato de complemento a dos de 32 bits , devuelve el índice del segundo dígito cero menos significativo en la representación binaria, donde un índice de 0
representa el bit menos significativo y un índice de 31
representa el bit más significativo.
Si no hay un segundo cero, puede devolver 0, cualquier número negativo, cualquier valor falso o informar un error de una manera que tenga sentido en su idioma.
Puede usar la indexación 1 si lo prefiere, pero los casos de prueba a continuación utilizarán la indexación 0.
Puede usar enteros sin signo si lo prefiere; si lo hace, debe manejar enteros en el rango [0, 2^32)
. Si usa enteros con signo, debe manejar enteros en el rango [-2^31, 2^31)
. Los casos de prueba aquí usarán enteros con signo, pero tenga en cuenta que -x
(con signo) es 2^32 - x
(sin signo).
Casos de prueba
0 (0b00) -> 1 1 (0b001) -> 2 10 (0b1010) -> 2 11 (0b01011) -> 4 12 (0b1100) -> 1 23 (0b010111) -> 5 -1 (0b11..11) -> Ninguno -2 (0b11..10) -> Ninguno -4 (0b11..00) -> 1 -5 (0b11..1011) -> Ninguno -9 (0b11..10111) -> Ninguno 2 ^ 31-2 (0b0111..1110) -> 31
Puntuación
Este es el código de golf , por lo que gana la respuesta más corta en cada idioma.
[0, 2^32)
.0b...
como entrada?2^32-1
porque no se suponía que regresara33
.