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

ตรวจสอบว่าบิตทั้งหมดของจำนวนถูกตั้งค่า (เป็น 1) หรือไม่ใน Python


สมมติว่าเรามีจำนวน n เราต้องตรวจสอบว่าบิตทั้งหมดถูกตั้งค่า (1) สำหรับจำนวน n ที่กำหนดหรือไม่

เช่น ถ้าอินพุตเป็น n = 255 ผลลัพธ์จะเป็น True เนื่องจากตัวแทนแบイนารีของ 255 คือ 11111111

ในการแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้:

  • ถ้าจำนวนเท่ากับ 0 แล้ว
    • คืนค่า False
  • while จำนวน > 0 ทำ
    • ถ้าจำนวนเป็นเลขคู่ แล้ว
      • คืนค่า False
    • จำนวน := ผลหารของ (จำนวน / 2)
  • คืนค่า True

ลองดูการนำไปใช้ดังต่อไปนี้เพื่อเข้าใจได้ดียิ่งขึ้น:

ตัวอย่าง

def solve(number):
    if number == 0:
        return False
    while number > 0:
        if (number & 1) == 0:
            return False
        number = number >> 1
    return True

n = 255
print(solve(n))

อินพุต

255

ผลลัพธ์

True