Sfida
Dato un numero intero nel formato del complemento a due a 32 bit , restituisce l'indice della seconda cifra zero meno significativa nella rappresentazione binaria, dove un indice 0rappresenta il bit meno significativo e un indice 31rappresenta il bit più significativo.
Se non esiste un secondo zero, è possibile restituire 0, qualsiasi numero negativo, qualsiasi valore di falsa o segnalare un errore in modo sensato nella propria lingua.
Se preferisci, puoi usare l'indicizzazione 1, ma i casi di test seguenti useranno l'indicizzazione 0.
Puoi usare numeri interi senza segno se preferisci; in tal caso, è necessario gestire numeri interi nell'intervallo [0, 2^32). Se si utilizzano numeri interi con segno, è necessario gestire numeri interi nell'intervallo [-2^31, 2^31). I casi di test qui utilizzeranno numeri interi con segno, ma nota che -x(firmato) è 2^32 - x(non firmato).
Casi test
0 (0b00) -> 1 1 (0b001) -> 2 10 (0b1010) -> 2 11 (0b01011) -> 4 12 (0b1100) -> 1 23 (0b010111) -> 5 -1 (0b11..11) -> Nessuno -2 (0b11..10) -> Nessuno -4 (0b11..00) -> 1 -5 (0b11..1011) -> Nessuno -9 (0b11..10111) -> Nessuno 2 ^ 31-2 (0b0111..1110) -> 31
punteggio
Questo è code-golf , quindi vince la risposta più breve in ogni lingua!
[0, 2^32).
0b...come input?
2^32-1perché non avrei dovuto tornare 33.