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

แปลงรายการไบนารีเป็นจำนวนเต็มใน Python

เราสามารถแปลงรายการของ 0 และ 1 ที่แทนตัวเลขไบนารีเป็นตัวเลขทศนิยมใน Python ได้หลายวิธี ในตัวอย่างด้านล่าง เราใช้เมธอด int() และตัวดำเนินการ bitwise left shift

ใช้ int()

เมธอด int() รับอาร์กิวเมนต์สองตัวและเปลี่ยนฐานของอินพุตตามไวยากรณ์ด้านล่าง

int(x, base=10)  # คืนค่าอ็อบเจกต์ integer ที่สร้างจากตัวเลขหรือสตริง x

ในตัวอย่างด้านล่าง เราใช้เมธอด int() เพื่อรับแต่ละองค์ประกอบของรายการเป็นสตริงและรวมกันเป็นสตริงสุดท้าย ซึ่งจะถูกแปลงเป็น integer ด้วยฐาน 2 (ไบนารี)

ตัวอย่าง

List = [0, 1, 0, 1, 0, 1]
print("The List is : " + str(List))
# แปลงรายการไบนารีเป็น integer
result = int("".join(str(i) for i in List), 2)
# ผลลัพธ์
print("The value is : " + str(result))

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

The List is : [1, 1, 0, 1, 0, 1]
The value is : 53

ใช้ Bitwise Left Shift Operator

ตัวดำเนินการ bitwise left shift แปลงรายการตัวเลขที่กำหนดเป็น integer หลังจากเพิ่มศูนย์สองตัวไปที่รูปแบบไบนารี จากนั้น bitwise OR ถูกใช้เพื่อเพิ่มเข้ากับผลลัพธ์นี้ เราใช้ for loop เพื่อวนรอบแต่ละหลักในรายการ

ตัวอย่าง

List = [1, 0, 0, 1, 1, 0]
print("The values in list is : " + str(List))
# แปลงรายการไบนารีเป็น integer
result = 0
for digits in List:
    result = (result << 1) | digits
# ผลลัพธ์
print("The value is : " + str(result))

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

The values in list is : [1, 0, 0, 1, 1, 0]
The value is : 38