บทความทั้งหมด

ระบบเลข: เหตุใดจึงมีระบบเลขฐานสอง ฐานแปด และฐานสิบหก

ประเทศไทยมีเลขไทย (๐๑๒๓๔๕๖๗๘๙) เป็นระบบตัวเลขของตัวเองมาแต่โบราณ และยังคงใช้อยู่จริงในปัจจุบัน — ปรากฏบนป้ายทะเบียนรถ เอกสารราชการบางประเภท เหรียญกษาปณ์ และป้ายในวัด ควบคู่ไปกับเลขอารบิก (0-9) ที่ใช้ในบริบทสากลอย่างเว็บและซอฟต์แวร์ ตัวเลขทั้งสองชุดนี้แทนค่าจำนวนเดียวกันทุกประการ เพียงแค่เขียนด้วยสัญลักษณ์คนละชุด ซึ่งเป็นหลักการเดียวกับที่เครื่องมือนี้ใช้แปลงระหว่างฐานสอง ฐานแปด และฐานสิบหก

เลขไทยกับเลขอารบิก สองระบบที่ใช้คู่กัน

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

เลขฐานสิบหกในเครื่องมือที่นักพัฒนาเปิดใช้จริง

เลขฐานสิบหกหนึ่งหลักตรงกับสี่บิตพอดี อักขระฐานสิบหกสองตัวจึงแทนหนึ่งไบต์ได้อย่างกระชับ — สี CSS อย่าง #3A7FD9 ที่อยู่ MAC อย่าง 00:1A:2B:3C:4D:5E หรือแอดเดรสหน่วยความจำที่ปรากฏใน stack trace ของดีบักเกอร์ ล้วนเป็นไบต์ที่เขียนในรูปแบบที่สั้นกว่าเลขฐานสองถึงสี่เท่า

เลขฐานแปดที่ยังหลงเหลือในสิทธิ์ไฟล์ Unix

เลขฐานแปดแทบหายไปจากการใช้งานทั่วไป แต่ยังยืนหยัดอยู่ในจุดเดียว — chmod 755 แต่ละหลักของเลขฐานแปดรวมสามบิตสิทธิ์ (อ่าน เขียน รัน) ไว้ในตัวเดียว ดังนั้น 7 หมายถึง "rwx" และ 5 หมายถึง "r-x" — การอ่านทีละสามบิตเร็วกว่าการนับเลขฐานสองทีละหลักถึงเก้าหลัก

ทำไมต้องใช้สิ่งนี้

  • แปลงสีจากรูปแบบเลขฐานสิบหกของ CSS เป็นค่า RGB ฐานสิบ
  • เข้าใจการแทนค่าเลขฐานสองของตัวเลขเมื่อทำงานกับ bitwise operation
  • ถอดรหัสสิทธิ์การเข้าถึงไฟล์แบบเลขฐานแปดในระบบ Unix

ทำไม Base64 จึงไม่ใช่ระบบเลขฐาน

Base64 มักถูกเข้าใจผิดว่าเป็นการแปลงระบบเลขฐานเพราะชื่อคล้ายกัน แต่จริง ๆ แล้วเป็นสิ่งที่แตกต่างกันโดยพื้นฐาน — คือการเข้ารหัสข้อมูลไบนารีใด ๆ (เช่น รูปภาพหรือไฟล์) ให้เป็นสตริงข้อความ 64 ตัวอักษร ไม่ใช่วิธีเขียนตัวเลขตัวเดียว เลข 255 ในฐานสิบหกคือ FF แต่เลขเดียวกันเมื่อเข้ารหัสเป็นหนึ่งไบต์ด้วย Base64 จะมีหน้าตาแตกต่างไปโดยสิ้นเชิงและมีจุดประสงค์ต่างกัน — คือการส่งข้อมูลไบนารีผ่านช่องทางที่รองรับข้อความ

ลองใช้เครื่องมือ