Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ตรวจสอบว่าบิตที่ตำแหน่งที่กำหนดถูกตั้งค่าหรือไม่ได้ตั้งค่าใน Python


สมมติว่าเรามีตัวเลข 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