สมมติว่าเรามีตัวเลข n และอีกค่าหนึ่งคือ k เราต้องตรวจสอบว่าบิต kth ใน n ถูกตั้งค่า (1) หรือไม่ ค่าของ k พิจารณาจากด้านขวามือ
ดังนั้น หากอินพุตเป็น n =23, k =3 เอาต์พุตจะเป็น True เนื่องจากรูปแบบไบนารีของ 23 คือ 10111 ดังนั้นบิตสุดท้ายที่สามคือ 1 (ชุด)
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- temp :=n หลังจากขยับบิต (k - 1) ครั้งไปทางขวา
- ถ้า temp และ 1 เป็น 1 แล้ว
- คืนค่า True
- คืนค่าเท็จ
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
โค้ดตัวอย่าง
def solve(n,k): temp = n >> (k - 1) if temp & 1: return True return False n = 23 k = 3 print(solve(n, k))
อินพุต
23, 3
ผลลัพธ์
True