การแปลงเลขฐาน 10 เป็นเลขฐาน 16: ความสำคัญ วิธีการหารสั้น และความเชื่อมโยงในคอมพิวเตอร์
ระบบเลขฐาน 16 (Hexadecimal Number System) เป็นอีกหนึ่งระบบตัวเลขที่มีบทบาทสำคัญอย่างมากในศาสตร์วิศวกรรมคอมพิวเตอร์ วิทยาการเขียนโปรแกรม และการทำงานของหน่วยประมวลผล หากสังเกตโครงสร้างที่คอมพิวเตอร์ทำงาน คุณจะพบว่าคอมพิวเตอร์ใช้ระบบฐาน 2 ซึ่งประกอบไปด้วย 0 และ 1 ในการทำงาน แต่การที่มนุษย์จะต้องมาคอยอ่านบิตที่ยาวนับสิบๆ หลักอาจทำให้เกิดความสับสนและเหนื่อยล้าได้ ระบบเลขฐาน 16 จึงได้รับการนำเสนอในฐานะ "ตัวแทนกระชับ" สำหรับตัวเลขฐานสอง ทำให้โปรแกรมเมอร์สามารถมองเห็นและวิเคราะห์รหัสสถาปัตยกรรมข้อมูลได้สะดวกขึ้น
ระบบเลขฐาน 16 (Hexadecimal) คืออะไร?
ระบบเลขฐาน 16 ใช้สัญลักษณ์แทนตัวเลขโดดทั้งหมด 16 ตัวด้วยกัน โดยเริ่มตั้งแต่ตัวเลข 0 ถึง 9 และตัวอักษรภาษาอังกฤษ A ถึง F เพื่อระบุค่าในปริมาณที่ระบบฐานสิบแทนด้วย 10 ถึง 15 มีรายละเอียดตารางเปรียบเทียบดังนี้:
- ตัวเลข 0 ถึง 9: มีค่าตามสัญลักษณ์เดิมในระบบฐาน 10
- อักษร
A: มีค่าเท่ากับ 10 ในเลขฐาน 10 - อักษร
B: มีค่าเท่ากับ 11 ในเลขฐาน 10 - อักษร
C: มีค่าเท่ากับ 12 ในเลขฐาน 10 - อักษร
D: มีค่าเท่ากับ 13 ในเลขฐาน 10 - อักษร
E: มีค่าเท่ากับ 14 ในเลขฐาน 10 - อักษร
F: มีค่าเท่ากับ 15 ในเลขฐาน 10
ทำไมต้องแปลงจากฐาน 10 เป็น 16?
สาเหตุที่ระบบเลขฐาน 16 มีความสำคัญเพราะค่าประจำหลักของเลขฐานสิบหกมีขนาดสัมพันธ์กับสถาปัตยกรรม 8 บิต (1 ไบต์) ของหน่วยความจำอย่างสมบูรณ์แบบ เนื่องจากเลขฐานสิบหกหนึ่งหลักสามารถแสดงสัญลักษณ์ขนาด 4 บิต (เรียกว่า Nibble) ได้อย่างพอดิบพอดี ดังนั้น ข้อมูลขนาด 1 ไบต์ (8 บิต) จึงสามารถแทนค่าได้ด้วยตัวอักษรหรือตัวเลขฐานสิบหกเพียง 2 ตัวเท่านั้น (ตั้งแต่ 00 ถึง FF) ช่วยเพิ่มความอ่านง่ายในการดูเลขตำแหน่งหน่วยความจำ (Memory Address), ค่าสีรหัสเว็บ (เช่น CSS hex code #FFFFFF แทนสีขาว หรือ #FF0000 แทนสีแดง), ตลอดจนหมายเลข IPv6 และ MAC Address ของอุปกรณ์เครือข่าย
ขั้นตอนและสูตรการแปลงเลขฐาน 10 เป็นฐาน 16 ด้วยวิธีหารด้วย 16
วิธีที่ได้มาตรฐานที่สุดในการแปลงตัวเลข คือการนำเลขฐานสิบมาทำการหารด้วย 16 ซ้ำไปเรื่อยๆ แล้วนำเศษเหลือมาเทียบกับอักขระฐานสิบหก โดยทำตามขั้นตอนนี้:
- นำตัวเลขฐานสิบตัวหลักตั้ง หารด้วย 16
- บันทึกผลลัพธ์จำนวนเต็ม (ผลหาร) และเก็บเศษที่เหลือ (มีค่าระหว่าง 0 ถึง 15)
- แปลงเศษเหลือที่มีค่าตั้งแต่ 10-15 ให้กลายเป็นอักษร A-F ตามกฎการจับคู่
- นำผลหารของรอบนั้นเป็นตัวตั้งในการหารด้วย 16 ครั้งถัดไป
- ดำเนินกระบวนการจนกระทั่งผลตั้งมีค่าน้อยกว่า 16 และไม่สามารถหารจำนวนเต็มได้อีกต่อไป (ผลหารเป็น 0)
- นำตัวอักษรและตัวเลขเศษเหลือทั้งหมดมาเรียงต่อกัน จากผลหารขั้นตอนล่างสุดย้อนกลับขึ้นไปหาเศษขั้นตอนแรกสุด
กรณีตัวอย่าง: แปลงเลข 2026 (ฐาน 10) เป็นเลขฐาน 16
มาลองลงมือทำโจทย์ข้อนี้ทีละหลัก:
- ขั้นที่ 1: 2026 ÷ 16 = 126 เศษ 10 (ซึ่งเทียบได้กับตัวอักษร A)
- ขั้นที่ 2: 126 ÷ 16 = 7 เศษ 14 (ซึ่งเทียบได้กับตัวอักษร E)
- ขั้นที่ 3: 7 ÷ 16 = 0 เศษ 7 (เมื่อผลหารเป็น 0 จึงยุติขั้นตอนการคำนวณ)
รวบรวมตัวอักษรเศษจากล่างขึ้นบน: 7, E, A
ผลสรุป: เลขฐานสิบ 2026 ในระบบเลขฐานสิบหกมีค่าเท่ากับ 7EA₁₆