เราสามารถแปลงรายการ 0s และ 1s ที่แทนเลขฐานสองเป็นเลขฐานสิบใน python โดยใช้วิธีการต่างๆ ในตัวอย่างด้านล่าง เราใช้เมธอด int() และตัวดำเนินการ shift ซ้ายระดับบิต
การใช้ int()
int() เมธอดใช้สองอาร์กิวเมนต์และเปลี่ยนฐานของอินพุตตามไวยากรณ์ด้านล่าง
int(x, base=10) Return an integer object constructed from a number or string x.
ในตัวอย่างด้านล่าง เราใช้เมธอด int() เพื่อนำแต่ละองค์ประกอบของรายการมาเป็นสตริงและรวมเข้าด้วยกันเพื่อสร้างสตริงสุดท้ายซึ่งจะถูกแปลงเป็นจำนวนเต็มที่มีฐาน 10
ตัวอย่าง
List = [0, 1, 0, 1, 0, 1] print ("The List is : " + str(List)) # binary list to integer conversion result = int("".join(str(i) for i in List),2) # result print ("The value is : " + str(result))
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
The List is : [1, 1, 0, 1, 0, 1] The value is : 53
การใช้ตัวดำเนินการ Shift ซ้ายระดับบิต
ตัวดำเนินการ shift ซ้ายระดับบิตจะแปลงรายการตัวเลขที่ระบุเป็นจำนวนเต็มหลังจากเพิ่มค่าศูนย์ในรูปแบบไบนารี จากนั้นระดับบิตหรือใช้เพื่อเพิ่มผลลัพธ์นี้ เราใช้ for loop เพื่อวนซ้ำในแต่ละหลักในรายการ
ตัวอย่าง
List = [1, 0, 0, 1, 1, 0] print ("The values in list is : " + str(List)) # binary list to integer conversion result = 0 for digits in List: result = (result << 1) | digits # result print ("The value is : " + str(result))
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
The values in list is : [1, 0, 0, 1, 1, 0] The value is : 38