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

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


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