โจทย์: แปลงสตริงเลขฐานสิบหก (Hexadecimal) เป็นเลขฐานสิบ (Decimal)
วิธีที่ 1: ใช้ int() built-in (แนะนำ)
int(hex_string, 16) แปลงโดยระบุฐาน 16
string = 'F'
res = int(string, 16)
print("The decimal number associated with hexadecimal string is : " + str(res))
# Output: 15
วิธีที่ 2: ใช้ ast.literal_eval
ต้องมี prefix 0x นำหน้า
from ast import literal_eval
test_string = '0xF'
res = literal_eval(test_string)
print("The decimal number of the hexadecimal string is : " + str(res))
# Output: 15
เปรียบเทียบ
| วิธี | รูปแบบ Input | ความยืดหยุ่น |
|---|---|---|
| int(s, 16) | 'F', 'ff', '1A3' | สูง - ไม่ต้องมี prefix |
| literal_eval | '0xF', '0xff' | ต่ำ - ต้องมี 0x prefix |
แนะนำ: ใช้ int(hex_string, 16) เป็นหลัก รองรับทั้งพิมพ์ใหญ่/เล็ก ไม่ต้อง prefix