เราสามารถแปลงรายการของ 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