โจทย์: แปลงเลขฐานสิบเป็นเลขฐานสอง (Binary)
วิธีที่ 1: Recursive
def DecimalToBinary(num):
if num > 1:
DecimalToBinary(num // 2)
print(num % 2, end='')
# ทดสอบ
DecimalToBinary(56) # Output: 111000
วิธีที่ 2: ใช้ bin() built-in (แนะนำ)
def decimalToBinary(n):
return bin(n).replace("0b", "")
print(decimalToBinary(56)) # Output: 111000
วิธีเพิ่มเติม: format()
def decimalToBinary(n):
return format(n, 'b')
print(decimalToBinary(56)) # Output: 111000
เปรียบเทียบ
- Recursive: เข้าใจหลักการ, เหมาะการศึกษา
- bin(): เร็วที่สุด, Pythonic, คืนค่า string
- format(): ยืดหยุ่น (padding, alignment)
หมายเหตุ: บทความต้นฉบับมีข้อความ Conclusion ผิด (กล่าวถึง list to string) ข้อความข้างต้นแก้ไขแล้ว