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

นับ Set Bits ด้วย Python List Comprehension

Set bits คือบิตที่แทนค่า 1 ในรูปแบบไบนารีของตัวเลข ในบทความนี้ เราจะดูวิธีนับจำนวน set bits ในตัวเลขทศนิยมที่กำหนด

# 53 ในไบนารีคือ: 110101
# จำนวน set bits คือจำนวน 1 ซึ่งก็คือ 4

ในโปรแกรมด้านล่าง เรารับตัวเลขและแปลงเป็นไบนารี เนื่องจากการแปลงไบนารีมี 0b เป็นตัวอักษรสองตัวแรก เราจึงลบออกโดยใช้เทคนิคแบ่งสตริง (string splitting) จากนั้นใช้ for loop นับบิตแต่ละบิตของตัวเลขไบนารี หากค่าของหลักนั้นเป็น 1

ตัวอย่าง

value = 59
# ตรวจสอบค่าไบนารี
print(bin(value))
# ลบตัวอักษรสองตัวแรก
bitvalue = bin(value)[2:]
print(bitvalue)
count = 0
for digit in bitvalue:
    if digit == '1':
        count = count + 1
print("Length of set bits: ", count)

ผลลัพธ์

การรันโค้ดข้างต้นจะได้ผลลัพธ์ดังนี้:

0b111011
111011
Length of set bits: 5