ASCII code คืออะไร
หากเราเคยดูภาพยนต์เรื่อง The Martian จะมีฉากนึงที่พระเอกซึ่งติดอยู่บนดาวอังคารเพียงลำพัง พยายามจะติดต่อกลับมายังโลกและสามารถพูดคุยกับทีมช่วยเหลือได้สำเร็จ โดยใช้การหันกล้องที่ติดอยู่กับหุ่นยนต์ซ้ายๆขวาๆเท่านั้น ฉากนี้พระเอกใช้สิ่งที่เรียกว่า ASCII code (ออกเสียงว่า แอสกี้ โค้ด) มาช่วยให้พวกเค้าสื่อสารกันได้
ก่อนที่จะทำความเข้าใจ ASCII code เราต้องเข้าใจเลขฐานซะก่อน
เลขฐานจะกล่าวง่ายๆ ก็คือ 1 หลัก จะมีจำนวนเท่ากับฐาน ยกตัวอย่างเช่น เลขฐาน10 (เลขฐานที่เราใช้กันในชีวิตประจำวัน)
การนับเลขฐาน10 เราจะเริ่ม จาก 0, 1, 2 …, จนถึง 9 เป็นจำนวน 10 ตัว ก่อนที่ขึ้นหลักใหม่
อีกตัวอย่างนึงก็คือ เข็มวินาทีของนาฬิกา จะเป็นเลขฐาน 60
โดยวินาทีจะเริ่มต้นจาก 0, 1, 2 …, จนถึง 59 ก่อนที่ขึ้นหลักใหม่ (ในกรณีนี้คือนาที)
เลขฐาน2
เลขฐาน2 ก็จะนับหลักละ 2 ตัว กล่าวคือ 0 กับ 1
ภาษาที่คอมพิวเตอร์สามารถเข้าใจได้ ก็จะเป็น Binary code หรือเลขฐาน2 นี่แหละ เนื่องจากเมื่อคอมพิวเตอร์ตรวจพบกระแสไฟฟ้าจะตีความเป็น1 กลับกันถ้าไม่มีกระแสไฟฟ้าก็จะตีความเป็น0 เพราะฉะนั้นในระบบคอมพิวเตอร์จึงมีแค่เลข สองตัวนี้เท่านั้น
การคำนวณทางคอมพิวเตอร์
คอมพิวเตอร์จะมีการคำนวณแต่ละชุดคำสั่งทีละ 8 หลัก หรือ 8 bits เช่น
0 1 0 0 0 0 0 1 = A
ต่อมา Programmer จึงใช้เลขฐาน16 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F) แทน 4 หลักของเลขฐาน2 เพื่อความสะดวกในการอ่าน ในกรณีนี้เลขฐาน16 คือ
81 = A
ASCII
ย่อมาจาก American Standard Code for Information Interchange ASCII กล่าวคือเป็นการกำหนด มาตรฐานการแปลงไปแปลงมาระหว่าง เลขฐาน16 (HEX code) เป็น ตัวอักษรภาษาอังกฤษ
มาถึงฉากที่พระเอก The Martian จะต้องสื่อสารกับโลกเสียที
หากว่าตัวเอกของเราจะพูดคำว่า “Hello” แปลงเป็น Binary code ได้คือ 0100100001100101011011000110110001101111
หากว่าหันกล้องไปทางซ้ายตีความเป็น 0
หันกล้องไปทางขวาตีความเป็น 1
ต้องการแค่ say “Hello” จะต้องหมุนไปหมุนมาถึง 40 ครั้งเลยทีเดียว
แต่พระเอกของเรามีเวลาเหลือเฟือในการหมุนกล้องไปกล้องมาเพื่อที่จะได้สื่อสารกับคนบนโลกอยู่แล้ว