ท้าทาย
รับค่าจำนวนเต็มในรูปแบบเสริมของ 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
เกณฑ์การให้คะแนน
นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดในแต่ละภาษาจะชนะ!
[0, 2^32)
ใช่คุณอาจตราบใดที่คุณจัดการกับจำนวนเต็มในช่วง
0b...
เป็นอินพุตหรือไม่
2^32-1
33