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