เลขฐาน 2 8 10 16 คืออะไร แปลงเลขฐานยังไง พร้อมตัวอย่างและตาราง




เห็นโค้ดสี #2563EB เห็นสิทธิ์ไฟล์ chmod 755 หรือโจทย์ให้แปลง 11010110 เป็นเลขที่คุ้นเคย ทั้งหมดนี้คือเลขฐานที่ไม่ใช่ฐานสิบ และถ้าเข้าใจหลักเดียวว่า “แต่ละหลักมีน้ำหนักเป็นเลขยกกำลังของฐาน” คุณจะแปลงเองได้ทุกฐานโดยไม่ต้องท่องสูตร

บทความนี้อธิบายเลขฐานสอง ฐานแปด ฐานสิบ และฐานสิบหกแบบทีละขั้น พร้อมตัวอย่างที่คำนวณซ้ำแล้ว และถ้าอยากเช็กคำตอบเร็วๆ ใช้เครื่องมือแปลงเลขฐานออนไลน์ฟรีพิมพ์ช่องไหนก็ได้ ช่องอื่นเปลี่ยนตามทันที

เลขฐานคืออะไร

เลขฐานคือระบบเขียนตัวเลขที่ใช้จำนวนสัญลักษณ์ไม่เท่ากัน ฐานสิบที่เราใช้ทุกวันมี 10 ตัว (0–9) ฐานสองมีแค่ 0 กับ 1 ฐานแปดมี 0–7 ส่วนฐานสิบหกมี 0–9 แล้วต่อด้วยตัวอักษร A–F แทนค่า 10–15 ทุกระบบนี้เป็นระบบ “ตามตำแหน่ง” (positional) คือค่าของแต่ละหลักขึ้นกับตำแหน่งที่มันอยู่ ไม่ใช่แค่ตัวเลขที่เขียน

ฐาน ชื่อ ตัวเลขที่ใช้ ใช้บ่อยที่สุดในงาน
2 Binary 0, 1 การเก็บข้อมูลในคอมพิวเตอร์ วงจรดิจิทัล
8 Octal 0–7 สิทธิ์ไฟล์บน Linux/Unix (chmod)
10 Decimal 0–9 ชีวิตประจำวัน
16 Hexadecimal 0–9, A–F รหัสสีเว็บ ที่อยู่หน่วยความจำ ค่าไบต์

เลขฐานแต่ละหลักมีน้ำหนักเท่าไร

ลองดูเลขฐานสิบ 2569 ก่อน มันคือ 2×1,000 + 5×100 + 6×10 + 9×1 หรือพูดอีกแบบคือ 2×10³ + 5×10² + 6×10¹ + 9×10⁰ เลขฐานอื่นใช้หลักเดียวกันเป๊ะ แค่เปลี่ยน 10 เป็นฐานของมัน เช่นฐานสอง น้ำหนักของแต่ละหลักจากขวาไปซ้ายคือ 1, 2, 4, 8, 16, 32, 64, 128…

เลขฐานสอง 1011 จึงมีค่า 1×8 + 0×4 + 1×2 + 1×1 = 11 ในฐานสิบ ส่วนฐานสิบหกใช้น้ำหนัก 1, 16, 256, 4,096… เช่น 3A = 3×16 + 10 = 58

ตารางเลขฐาน 0–16 เทียบทุกฐาน

ตารางนี้ช่วยให้เห็นรูปแบบ เช่น ฐานสองเลื่อนหลักทุกครั้งที่ถึงยกกำลังของ 2 (2, 4, 8, 16) ฐานแปดขึ้นหลักใหม่ที่ 8 และฐานสิบหกขึ้นหลักใหม่ที่ 16

ฐานสิบ ฐานสอง ฐานแปด ฐานสิบหก
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10

แปลงเลขฐานสองเป็นฐานสิบ

เขียนน้ำหนักของแต่ละหลักไว้ใต้ตัวเลข แล้วรวมเฉพาะหลักที่เป็น 1 ตัวอย่าง 11010110

น้ำหนัก 128 64 32 16 8 4 2 1
บิต 1 1 0 1 0 1 1 0

รวมเฉพาะหลักที่เป็น 1: 128 + 64 + 16 + 4 + 2 = 214 ดังนั้น 11010110 ในฐานสองเท่ากับ 214 ในฐานสิบ

แปลงเลขฐานสิบเป็นฐานสอง ฐานแปด ฐานสิบหก

ใช้วิธีหารซ้ำด้วยฐานที่ต้องการ จดเศษของแต่ละรอบ แล้วอ่านเศษจากล่างขึ้นบน หารจนผลหารเป็น 0 ตัวอย่างแปล 156 เป็นฐานสอง

การหาร ผลหาร เศษ
156 ÷ 2 78 0
78 ÷ 2 39 0
39 ÷ 2 19 1
19 ÷ 2 9 1
9 ÷ 2 4 1
4 ÷ 2 2 0
2 ÷ 2 1 0
1 ÷ 2 0 1

อ่านเศษจากล่างขึ้นบนได้ 10011100 ถ้าหารด้วย 8 แทนก็ได้ฐานแปด 234 และถ้าหารด้วย 16 จะได้ 9C (156 ÷ 16 = 9 เศษ 12 และ 12 คือตัว C) วิธีเดียวกันใช้ได้กับทุกฐาน แค่เปลี่ยนตัวหาร

ทางลัด: แปลงระหว่างฐานสอง ฐานแปด ฐานสิบหก โดยไม่ต้องผ่านฐานสิบ

เพราะ 8 = 2³ และ 16 = 2⁴ ฐานแปดกับฐานสิบหกจึงเป็นแค่การ “จัดกลุ่ม” ของบิตฐานสอง ไม่ต้องคำนวณอะไร

  • ฐานสอง → ฐานแปด: แบ่งบิตเป็นกลุ่มละ 3 ตัวจากขวา แล้วแปลงแต่ละกลุ่ม เช่น 111 101 101 = 7 5 5 = 755
  • ฐานสอง → ฐานสิบหก: แบ่งเป็นกลุ่มละ 4 ตัวจากขวา เช่น 1101 0110 = D 6 = D6 (ตรวจ: 13×16 + 6 = 214 ตรงกับตัวอย่างข้างบน)
  • ย้อนกลับ: แยกแต่ละหลักเป็นบิต 3 หรือ 4 ตัว เช่น 2F = 0010 1111

ทางลัดนี้คือเหตุผลที่โปรแกรมเมอร์ชอบฐานสิบหก เพราะ 1 ไบต์ (8 บิต) เขียนได้พอดี 2 หลัก ตั้งแต่ 00 ถึง FF (0–255) แทนที่จะต้องเขียนเลขสอง 8 ตัวยาวๆ

เลขฐานอยู่ตรงไหนในชีวิตจริง

รหัสสีเว็บ (HEX color)

รหัสสีแบบ #RRGGBB คือเลขฐานสิบหก 3 คู่ แทนความเข้มของแดง เขียว น้ำเงิน แต่ละคู่มีค่า 00–FF หรือ 0–255 ตามมาตรฐาน CSS ที่ MDN อธิบายไว้ ยกตัวอย่างสีน้ำเงิน #2563EB แยกเป็น 25 = 37, 63 = 99, EB = 235 ได้สี RGB (37, 99, 235)

สิทธิ์ไฟล์บน Linux (chmod)

สิทธิ์ไฟล์ใช้เลขฐานแปด 3 หลัก แทนเจ้าของไฟล์ กลุ่ม และคนอื่นตามลำดับ โดยอ่าน (read) = 4, เขียน (write) = 2, รัน (execute) = 1 แล้วบวกกัน ดังนั้น 755 คือเจ้าของทำได้ทั้งหมด (4+2+1 = 7) ส่วนกลุ่มกับคนอื่นอ่านและรันได้ (4+1 = 5) ถ้าเขียนเป็นบิตคือ 111 101 101 ซึ่งตรงกับตัวอย่างทางลัดข้างบนพอดี และเมื่อแปลงเป็นฐานสิบจะได้ 493

ตัวอักษรในคอมพิวเตอร์ (ASCII)

ในตาราง ASCII ตัวอักษร A มีค่า 65 ในฐานสิบ หรือ 41 ในฐานสิบหก และเก็บเป็นบิต 01000001 (1 ไบต์) ลองแปล 65 เป็นฐานสองด้วยวิธีหารซ้ำดู ควรได้ 1000001 ซึ่งเติม 0 ข้างหน้าให้ครบ 8 บิตก็ตรงกัน

ตัวอย่างโจทย์ที่เจอบ่อย พร้อมคำตอบ

โจทย์ คำตอบ
255 (ฐานสิบ) เป็นฐานสองและฐานสิบหก 11111111 และ FF (ฐานแปดคือ 377)
1000 (ฐานสิบ) เป็นฐานสิบหก 3E8
100 (ฐานสิบ) เป็นฐานสอง 1100100
7F (ฐานสิบหก) เป็นฐานสิบ 127
2569 (ฐานสิบ) เป็นฐานสิบหก A09

ตัวอย่างสุดท้ายตรวจได้ว่า A09 = 10×256 + 0×16 + 9 = 2,569 ทุกคำตอบในตารางนี้ลองกรอกในเครื่องมือเพื่อเทียบได้เลย

วิธีใช้เครื่องมือแปลงเลขฐาน

  1. เปิดหน้าแปลงเลขฐาน
  2. พิมพ์ตัวเลขในช่องที่ตรงกับฐานที่คุณมี เช่น พิมพ์ 11010110 ในช่องฐานสอง
  3. ช่องฐานแปด ฐานสิบ และฐานสิบหกจะแสดงค่าที่แปลงแล้วทันที (ตัวอย่างนี้ได้ 326, 214 และ D6)
  4. ล้างช่องหนึ่งเพื่อเริ่มใหม่ ช่องอื่นจะเคลียร์ตามไปด้วย

ข้อควรรู้: เครื่องมือรองรับเฉพาะจำนวนเต็มบวก ไม่รองรับเลขทศนิยมหรือเลขติดลบ และถ้าพิมพ์ตัวเลขที่ไม่มีในฐานนั้น เช่น 2 ในช่องฐานสอง ช่องอื่นจะไม่เปลี่ยน นอกจากนี้การคำนวณทำบน JavaScript ซึ่งเก็บจำนวนเต็มได้แม่นยำถึง 9,007,199,254,740,991 (2⁵³ − 1) ตามที่ MDN ระบุ ตัวเลขที่ใหญ่กว่านี้อาจคลาดเคลื่อน

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

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

เพราะวงจรอิเล็กทรอนิกส์แยกสถานะได้ง่ายสุดแค่สองแบบ คือมีสัญญาณกับไม่มีสัญญาณ แทนด้วย 1 กับ 0 ตัวเลขและตัวอักษรทั้งหมดจึงถูกเก็บเป็นลำดับของบิต

ฐานสิบหกใช้ตัวอักษร A–F แทนอะไร

แทนค่า 10 ถึง 15 ตามลำดับ คือ A=10, B=11, C=12, D=13, E=14, F=15 เพราะฐานสิบหกต้องมีสัญลักษณ์ 16 ตัว แต่เลขอารบิกมีแค่ 10 ตัว จะพิมพ์ตัวพิมพ์เล็กหรือใหญ่ก็ได้ค่าเท่ากัน

เลขฐานสอง 8 หลักมีค่ามากสุดเท่าไร

11111111 เท่ากับ 255 ซึ่งคือ 2⁸ − 1 และเป็นค่าสูงสุดของ 1 ไบต์ที่ไม่มีเครื่องหมาย จึงเห็นเลข 255 และ FF บ่อยมากในงานสีและเครือข่าย

แปลงเลขฐานสิบหกเป็นฐานสองยังไงเร็วที่สุด

แปลงทีละหลักเป็นบิต 4 ตัว เช่น B = 1011, 7 = 0111 ดังนั้น B7 = 1011 0111 ไม่ต้องผ่านฐานสิบเลย ผลที่ได้คือ 183 ในฐานสิบ

เลขฐานแปดยังใช้อยู่ไหม

ยังใช้ที่เห็นชัดที่สุดคือสิทธิ์ไฟล์แบบ chmod บน Linux และ macOS เช่น 644 และ 755 ส่วนงานอื่นส่วนใหญ่ใช้ฐานสองหรือฐานสิบหกมากกว่า

สรุป

เลขฐานทุกระบบใช้หลักเดียวกัน คือแต่ละหลักมีน้ำหนักเป็นเลขยกกำลังของฐาน แปลงเข้าฐานสิบด้วยการรวมน้ำหนัก แปลงออกจากฐานสิบด้วยการหารซ้ำ และระหว่างฐานสอง แปด สิบหก ใช้ทางลัดจัดกลุ่มบิต 3 หรือ 4 ตัวได้เลย ถ้าไม่อยากคำนวณมือหรืออยากตรวจคำตอบ ลองใช้เครื่องมือแปลงเลขฐานได้ทันที และถ้าสนใจเรื่องการเข้ารหัสข้อมูลต่อ อ่านเรื่องBase64 คืออะไร, JSON คืออะไร หรือการใช้เครื่องคิดเลขวิทยาศาสตร์เพิ่มเติม