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

แปลงเลขฐานสิบเป็นลิสต์เลขฐานสอง (Binary) ใน Python

Python เป็นภาษาที่ยืดหยุ่น สามารถจัดการแปลงเลขฐานสิบเป็นเลขฐานสองได้หลายวิธี บทความนี้เสนอ 2 วิธีหลักในการแปลงและสร้างเป็นลิสต์ของตัวเลข 0 และ 1

1. ใช้ format()

ใช้ format specifier {0:0b} เพื่อแปลงจำนวนเต็มเป็นสตริงเลขฐานสอง แล้วแปลงแต่ละตัวอักษรเป็นจำนวนเต็มเก็บในลิสต์

ตัวอย่าง

Dnum = 11
print("Given decimal : " + str(Dnum))

# แปลงเป็นเลขฐานสอง แล้วสร้างลิสต์
binnum = [int(i) for i in list('{0:0b}'.format(Dnum))]

print("Converted binary list is : ", binnum)

ผลลัพธ์

Given decimal : 11
Converted binary list is : [1, 0, 1, 1]

2. ใช้ bin()

ฟังก์ชัน built-in bin() แปลงจำนวนเต็มเป็นสตริงเลขฐานสองนำหน้าด้วย '0b' จึงต้อง slice ตัวอักษร 2 ตัวแรกออกก่อน

ตัวอย่าง

Dnum = 11
print("Given decimal : " + str(Dnum))

# ใช้ bin() และ slice [2:] เพื่อตัด '0b' ออก
binnum = [int(i) for i in bin(Dnum)[2:]]

print("Converted binary list is : ", binnum)

ผลลัพธ์

Given decimal : 11
Converted binary list is : [1, 0, 1, 1

เปรียบเทียบ: ทั้งสองวิธีให้ผลลัพธ์เหมือนกัน bin() เร็วกว่าเล็กน้อยและเป็น idiomatic Python มากกว่า ในขณะที่ format() ให้ความยืดหยุ่นในการจัดรูปแบบเพิ่มเติม เช่น padding ด้วยศูนย์นำหน้า