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

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


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