การแปลงเลขฐาน 2 เป็นเลขฐาน 16 (Binary to Hexadecimal)
เมื่อต้องทำงานใกล้ชิดกับระบบคอมพิวเตอร์ การเขียนโปรแกรม (Programming) หรือการออกแบบระบบดิจิทัล (Digital Logic Design) เรามักจะพบกับการแสดงผลข้อมูลตัวเลขที่หลากหลาย ระบบเลขฐาน 2 (Binary) เป็นระบบพื้นฐานที่เครื่องคอมพิวเตอร์เข้าใจ ทว่าการอ่านค่าสายอักขระเลข 0 และ 1 ที่ยาวเหยียดนั้นอาจทำให้สายตามนุษย์สับสนและเกิดความผิดพลาดได้ง่าย ด้วยเหตุนี้ ระบบเลขฐาน 16 (Hexadecimal) จึงถูกนำมาใช้เพื่อย่อสายข้อมูลให้สั้นลงและอ่านง่ายขึ้น โดยที่ยังคงความสัมพันธ์เชิงคณิตศาสตร์กับระบบฐาน 2 อย่างสมบูรณ์แบบ
ระบบเลขฐาน 16 (Hexadecimal System) คืออะไร?
ระบบเลขฐาน 16 หรือที่นิยมเรียกย่อๆ ว่า Hex เป็นระบบเลขที่ประกอบด้วยสัญลักษณ์ 16 ตัว ได้แก่ ตัวเลข 0-9 (แทนค่า 0 ถึง 9) และตัวอักษรภาษาอังกฤษ A-F (แทนค่า 10 ถึง 15 ตามลำดับ) โดยมีหลักการแทนค่าดังนี้:
- A = 10
- B = 11
- C = 12
- D = 13
- E = 14
- F = 15
ข้อดีอย่างหนึ่งของระบบนี้คือ เลขฐาน 16 จำนวน 1 หลัก สามารถแทนค่าของเลขฐาน 2 ได้ถึง 4 หลัก (4 บิต หรือ 1 Nibble) อย่างพอดี ซึ่งสอดคล้องกับขนาดหน่วยความจำพื้นฐานของคอมพิวเตอร์ที่เก็บข้อมูลทีละ 8 บิต (1 Byte) ทำให้เลขฐาน 16 จำนวน 2 หลัก สามารถเขียนแทน 1 Byte ได้อย่างลงตัว เช่น 11111111 ในฐาน 2 สามารถเขียนสั้นๆ ได้ว่า FF ในฐาน 16
วิธีการแปลงเลขฐาน 2 เป็นเลขฐาน 16
การแปลงจากฐาน 2 (Binary) ไปยังฐาน 16 (Hexadecimal) มีขั้นตอนที่ตรงไปตรงมาและไม่ต้องผ่านการคำนวณที่ซับซ้อน สามารถทำได้ง่ายๆ โดยอาศัยหลักการจัดกลุ่ม (Grouping) ดังต่อไปนี้:
- แบ่งกลุ่มทีละ 4 บิต: เริ่มจากบิตทางขวาสุด (Least Significant Bit) แบ่งเลขฐาน 2 ออกเป็นกลุ่มละ 4 บิต ไปทางซ้าย
- เติมศูนย์ (Padding): หากกลุ่มซ้ายสุดมีจำนวนบิตไม่ถึง 4 บิต ให้เติม 0 เข้าไปข้างหน้าให้ครบ 4 บิต (การเติม 0 ข้างหน้าไม่ทำให้ค่าของตัวเลขเปลี่ยนไป เหมือนกับ 05 ที่มีค่าเท่ากับ 5)
- แปลงทีละกลุ่ม: นำแต่ละกลุ่มที่ได้ (4 บิต) มาแปลงเป็นเลขฐาน 16 โดยเทียบตามตารางค่าประจำกลุ่ม:
- 0000 = 0, 0001 = 1, 0010 = 2, 0011 = 3
- 0100 = 4, 0101 = 5, 0110 = 6, 0111 = 7
- 1000 = 8, 1001 = 9, 1010 = A, 1011 = B
- 1100 = C, 1101 = D, 1110 = E, 1111 = F
- นำผลลัพธ์มาเรียงต่อกัน: เมื่อแปลงทุกกลุ่มเสร็จสิ้น นำสัญลักษณ์ฐาน 16 ที่ได้มาเรียงต่อกันจากซ้ายไปขวา ก็จะได้คำตอบสุดท้าย
ตัวอย่างที่ 1: แปลง 1010111101 (ฐาน 2) เป็นเลขฐาน 16
เริ่มจัดกลุ่มทีละ 4 บิตจากขวาไปซ้าย:
(10) (1011) (1101)
เติม 0 ข้างหน้ากลุ่มแรกให้ครบ 4 บิต:
(0010) (1011) (1101)
เทียบค่าทีละกลุ่ม:
- 0010 = 2
- 1011 = B (11 ในฐาน 10)
- 1101 = D (13 ในฐาน 10)
นำมาต่อกันจะได้คำตอบคือ 2BD
ประยุกต์ใช้ในวงการเทคโนโลยี
การแปลงระหว่างฐาน 2 และฐาน 16 ถูกใช้อย่างแพร่หลายในโลกของไอที เช่น การระบุรหัสสี (Color Code) ในการทำเว็บไซต์ด้วย HTML และ CSS (เช่น #FFFFFF แทนสีขาว, #FF0000 แทนสีแดง), การแสดงผลตำแหน่งหน่วยความจำ (Memory Address) เมื่อเกิดข้อผิดพลาด (Blue Screen of Death ใน Windows มักจะโชว์ Memory Dump เป็นฐาน 16), รวมไปถึงการเข้ารหัสและถอดรหัสข้อมูล เครื่องมือบนหน้านี้จะช่วยให้การทำงานกับระบบตัวเลขที่ดูยุ่งยากกลายเป็นเรื่องง่าย ประหยัดเวลา และมั่นใจได้ในความถูกต้อง