เครื่องมือ
TH

เลขฐานสิบหกคืออะไร?

เลขฐานสิบหก (hexadecimal หรือ hex) คือระบบเลขฐาน 16 ที่เขียนตัวเลขด้วยสัญลักษณ์ 16 ตัว – 0–9 และ A–F – และเป็นรูปแบบย่อมาตรฐานสำหรับข้อมูลไบนารีในงานคอมพิวเตอร์ ตั้งแต่สีบนเว็บไปจนถึงที่อยู่หน่วยความจำ

เลขฐานสิบหกในประโยคเดียว

เลขฐานสิบหกคือระบบเลขเชิงตำแหน่งที่มีฐาน 16: แต่ละหลักมีค่ามากกว่าหลักทางขวา 16 เท่า และค่า 10 ถึง 15 เขียนด้วยตัวอักษร A ถึง F เพื่อระบุว่าเป็นเลขฐานสิบหก โปรแกรมเมอร์จะเขียน 0x1A (C, Java, JavaScript, Python), #1A2B3C สำหรับสีใน CSS, 1Ah ในภาษาแอสเซมบลี หรือ 1A₁₆ ในทางคณิตศาสตร์

เลขโดดฐานสิบหกตั้งแต่ 0 ถึง 15

ฐานสิบHexฐานสองฐานสิบHexฐานสอง
000000881000
110001991001
22001010A1010
33001111B1011
44010012C1100
55010113D1101
66011014E1110
77011115F1111

การนับเลขฐานสิบหก

การนับเลขฐานสิบหกเหมือนฐานสิบ แต่จะขึ้นหลักใหม่หลัง F แทนที่จะเป็นหลัง 9: … 8, 9, A, B, C, D, E, F, 10, 11 … 19, 1A … 1F, 20 … FF, 100 ในที่นี้ 10 หมายถึงสิบหก และ 100 หมายถึง 16 × 16 = 256 เลข hex สองหลักครอบคลุมหนึ่งไบต์ (00–FF = 0–255) สี่หลักไปได้ถึง FFFF = 65,535 และแปดหลักไปได้ถึง FFFFFFFF = 4,294,967,295

ทำไมคอมพิวเตอร์จึงใช้เลขฐานสิบหก

คอมพิวเตอร์เก็บทุกอย่างเป็นเลขฐานสอง แต่แถวของ 0 และ 1 ที่ยาวเหยียดนั้นอ่านยากและพิมพ์ผิดได้ง่าย เนื่องจาก 16 = 2⁴ เลข hex หนึ่งหลักจึงแทน 4 บิต (nibble) พอดี และ hex สองหลักแทนหนึ่งไบต์ การแปลงระหว่าง hex กับเลขฐานสองทำได้ง่าย ๆ ด้วยการเทียบทีละหลัก และ hex ยังสั้นกว่าถึง 4 เท่า: 1101 1110 1010 1101 เขียนเป็นแค่ DEAD ส่วนเลขฐานสิบไม่มีความสัมพันธ์ที่ลงตัวแบบนี้กับเลขฐานสอง จึงแทบไม่ใช้กับข้อมูลดิบ

การแปลงเลขฐานสิบหกเป็นฐานสิบและกลับกัน

เครื่องมือแปลงเลขฐานของเราทำทั้งหมดนี้ได้ทันทีและแสดงวิธีทำทุกขั้นตอน

เลขฐานสิบหกถูกใช้ที่ไหนบ้าง

เปรียบเทียบเลขฐานสิบหก ฐานสิบ ฐานแปด และฐานสอง

ระบบฐานตัวเลขที่ใช้255 เขียนเป็นการใช้งานทั่วไป
ฐานสอง20–111111111ฮาร์ดแวร์, bit flag
ฐานแปด80–7377สิทธิ์ไฟล์บน Unix (chmod 755)
ฐานสิบ100–9255ตัวเลขในชีวิตประจำวัน
ฐานสิบหก160–9, A–FFFไบต์ สี ที่อยู่หน่วยความจำ hash

เลขติดลบในฐานสิบหก

เลขฐานสิบหกไม่มีเครื่องหมายพิเศษสำหรับค่าลบ จำนวนลบจึงมักถูกเก็บในรูปแบบ two's complement: บิตสูงสุดของค่าที่มีขนาดคงที่จะบอกว่าเป็นจำนวนลบ เมื่อเป็นไบต์แบบมีเครื่องหมาย 7F คือ 127, 80 คือ −128 และ FF คือ −1 ส่วนเมื่อเป็นจำนวนเต็ม 32 บิต FFFFFFFF คือ −1 ในทางคณิตศาสตร์และในเครื่องคิดเลขของเรา คุณยังเขียนเครื่องหมายลบได้ตามปกติ: −1A = −26

คำถามที่พบบ่อย

ทำไมเลขฐานสิบหกจึงใช้ตัวอักษร?

ฐาน 16 ต้องใช้เลขโดดที่เป็นอักขระเดียว 16 ตัว แต่ตัวเลขมีแค่ 10 ตัว ตัวอักษร A–F จึงใช้แทนค่า 10–15 ตัวพิมพ์ใหญ่และตัวพิมพ์เล็กมีความหมายเหมือนกัน: ff = FF = 255

0x หน้าตัวเลขหมายความว่าอะไร?

เป็นการระบุว่าตัวเลขนั้นเป็นเลขฐานสิบหกในภาษา C, C++, Java, JavaScript, Python และภาษาอื่น ๆ อีกมาก: 0x10 คือ 16 ไม่ใช่สิบ ส่วน CSS ใช้ # สำหรับสีแทน และโค้ดแอสเซมบลีมักเติม h ต่อท้าย (10h)

เลขฐานสิบหกเหมือนกับ Base64 หรือไม่?

ไม่เหมือน hex เขียนแต่ละไบต์เป็นอักขระสองตัวจาก 0–9 และ A–F ข้อมูลจึงมีขนาดเพิ่มเป็นสองเท่า แต่ยังอ่านทีละไบต์ได้ง่าย ส่วน Base64 ใช้อักขระ 64 ตัวและบรรจุ 3 ไบต์ลงใน 4 อักขระ จึงกระชับกว่า (เพิ่มขนาดราว 33%) แต่อ่านทีละไบต์ไม่ได้

อัปเดตล่าสุด: