Herausforderung
Gegeben eine ganze Zahl in einem 32-Bit - Zweier-Komplement - Format, kehren den Index der zweiten niedrigstwertigen Ziffer Null in der binären Darstellung, wobei ein Index für 0
das niedrigstwertige Bit darstellt, und ein Index 31
repräsentiert das höchstwertige Bit.
Wenn es keine zweite Null gibt, können Sie 0, eine negative Zahl oder einen falschen Wert zurückgeben oder einen Fehler auf eine Weise melden, die in Ihrer Sprache sinnvoll ist.
Sie können die 1-Indizierung verwenden, wenn Sie dies bevorzugen. In den folgenden Testfällen wird jedoch die 0-Indizierung verwendet.
Sie können vorzeichenlose Ganzzahlen verwenden, wenn Sie dies bevorzugen. Wenn Sie dies tun, müssen Sie Ganzzahlen im Bereich verarbeiten [0, 2^32)
. Wenn Sie vorzeichenbehaftete Ganzzahlen verwenden, müssen Sie Ganzzahlen im Bereich verarbeiten [-2^31, 2^31)
. In den Testfällen werden vorzeichenbehaftete Ganzzahlen verwendet. Beachten Sie jedoch, dass -x
(signiert) 2^32 - x
(nicht signiert) ist .
Testfälle
0 (0b00) -> 1 1 (0b001) -> 2 10 (0b1010) -> 2 11 (0b01011) -> 4 12 (0b1100) -> 1 23 (0b010111) -> 5 -1 (0b11..11) -> Keine -2 (0b11..10) -> Keine -4 (0b11..00) -> 1 -5 (0b11..1011) -> Keine -9 (0b11..10111) -> Keine 2 ^ 31-2 (0b0111..1110) -> 31
Wertung
Dies ist Code-Golf , also gewinnt die kürzeste Antwort in jeder Sprache!
[0, 2^32)
.
0b...
als Eingabe?
2^32-1
weil ich nicht zurückkehren sollte 33
.