도전
32 비트 2의 보수 형식 의 정수가 제공 되면 이진 표현에서 두 번째 로 중요도가 낮은 두 번째 0 의 인덱스를 반환합니다 . 여기서 인덱스 는 가장 중요하지 않은 비트 0를 31나타내고 인덱스 는 가장 중요한 비트 를 나타냅니다.
두 번째 0이 없으면 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
채점
이것은 code-golf 이므로 각 언어에서 가장 짧은 답변이 이깁니다!
[0, 2^32).
0b...을 입력으로 사용합니까?
2^32-1반환하지 않아야했기 때문에 젤리 답변을 수정 했기 때문에 그렇지 않은 것 같습니다 33.