รหัสแทนข้อมูล หมายถึง รหัสที่ใช้แทนตัวอักขระ ซึ่งประกอบด้วยตัวอักษร ตัวเลข หรือสัญลักษณ์พิเศษอื่น ๆ ที่ใช้ในโปรแกรมคอมพิวเตอร์ เพราะว่าข้อมูลที่เก็บไว้ในหน่วยความจำของคอมพิวเตอร์จะแทนด้วยรหัสเลขฐานสองที่มีเลข ๐ กับ ๑ วางเรียงกัน ที่นิยมใช้มี ๓ รหัสคือ รหัสบีซีดี รหัสแอบซีดิก รหัสแอสกี้
รหัสแอสกี้ (ASCII) ย่อมาจาก American Standard Code for Information Interchange เป็นรหัสที่กำหนดขึ้นโดยหน่วยงานกำหนดมาตรฐานของสหรัฐอเมริการหัสอักขระแต่ละตัวประกอบด้วย ๘ บิต
บิตที่ ๔ ถึง ๗ เป็นส่วนที่ใช้กำหนดประเภทของตัวอักขระ
|
๐๐๑๐
| |
เครื่องหมายต่าง ๆ
|
๐๐๑๑
| |
ตัวเลขและเครื่องหมายต่างๆ
|
๐๑๐๐
| |
A-O
|
๐๑๐๑
| |
P-Z และเครื่องหมายต่าง ๆ
|
๐๑๑๐
| |
a-o
|
๐๑๑๐
| |
p-z และเครื่องหมายต่าง ๆ
|
บิตที่ ๐ ถึง ๓ เป็นรหัสแทนอักขระแต่ละตัวในกลุ่มนั้น
|
คอมพิวเตอร์ทำงานด้วยหลักการทางอิเล็กทรอนิกส์ ที่แทนสัญญาณทางไฟฟ้าด้วยตัวเลขศูนย์และหนึ่งซึ่งเป็นตัวเลขในระบบเลขฐานสอง แต่ละหลักเรียกว่าบิต (Binary Digit: Bit) และเมื่อนำตัวเลขหลาย ๆ บิตมาเรียงกัน จะใช้สร้างรหัสแทนความหมายจำนวน หรือตัวอักษร หรือสัญลักษณ์ ทั้งภาษาอังกฤษและภาษาไทยได้ และเพื่อให้การแลกเปลี่ยนข้อความระหว่างมนุษย์กับคอมพิวเตอร์เป็นไปในแนวเดียวกัน จึงมีการกำหนดมาตรฐานรหัสตัวเลขในระบบเลขฐานสองสำหรับแทนสัญลักษณ์เหล่านี้ รหัสมาตรฐานที่นิยมใช้กันมากมีสองกลุ่มคือ
รหัสแอสกี้ (ASCII) เป็นมาตรฐานที่นิยมใช้กันมากในระบบคอมพิวเตอร์ส่วนใหญ่ เป็นคำย่อมาจาก American Standard Code Information Interchange เป็นรหัส ๘ บิต แทนสัญลักษณ์ต่าง ๆ ได้ ๒๕๖ ตัว เมื่อใช้แทนตัวอักษรภาษาอังกฤษแล้วยังมีเหลืออยู่ สำนักงานมาตรฐานผลิตภัณฑ์อุตสาหกรรม หรือ สมอ. ได้กำหนดรหัสภาษาไทยเพิ่มลงไปเพื่อให้ใช้งานร่วมกันได้ การแทนค่าแทนค่าด้วยตัวเลขแนวตั้ง(b๗ –b๔)ก่อน แล้วตามด้วยตัวเลขแนวนอน(b๓ – b๐) เช่น ก ๑๐๑๐๐๐๐๑ และ A ๐๑๐๐๐๐๐๑หน่วยความจำของไมโครคอมพิวเตอร์ที่ใช้กันอยู่ในขณะนี้ มีขนาดความกว้าง ๘ บิต และเก็บข้อมูลเรียงกันไป โดยมีการกำหนดตำแหน่งซึ่งเรียกว่า เลขที่อยู่ (Address) เพื่อให้ข้อมูลที่เก็บมีความถูกต้อง การเขียนหรืออ่านทุกครั้งจึงต้องตรวจสอบความถูกต้องของข้อมูล วิธีที่ง่ายและนิยมใช้กันคือการเพิ่มอีก ๑ บิต เรียกว่า บิตพาริตี้ (Parity bit) บิตพาริตี้ที่เพิ่มเติมเข้าไปจะทำให้ข้อมูลทั้งหมดในส่วนนั้นมีเลข ๑ เป็นจำนวนคู่ หรือจำนวนคี่ก็ได้ เช่น ในไมโครคอมพิวเตอร์เพิ่มอีก ๑ บิต เพื่อทำให้บิตที่แสดงค่าของรหัสเป็นจำนวนคู่ เรียกว่าพาริตี้คู่ (Even parity) ส่วนการเพิ่มบิตพาริตี้รวมอยู่ในกลุ่มของรหัสแล้วทำให้บิตที่แสดงค่าของรหัสเป็นจำนวนคี่ เรียกว่าพาริตี้คี่ (Odd parity) บิตพาริตี้ที่เติมสำหรับข้อมูลตัวอักษร Aและ E เป็นดังนี้
A ๐๑๐๐๐๐๐๑ ๐<-- บิตพาริตี้ E ๐๑๐๐๐๑๐๑ ๑<-- บิตพาริตี้
ข้อมูล A มีเลข ๑ สองตัว ซึ่งเป็นจำนวนคู่อยู่แล้ว ดังนั้นจึงใส่บิตพาริตี้เป็นเลข ๐ ข้อมูล E มีเลข ๑ เป็นจำนวนคี่ จึงใส่บิตพาริตี้เป็น ๑ เพื่อให้มีเลข ๑ เป็นจำนวนคู่ข้อความ BANGKOK เมื่อเก็บในหน่วยความจำหลักของไมโครคอมพิวเตอร์ที่มีบิตพาริตี้ด้วยจะเป็นดังตัวอย่างด้านล่าง
ตัวอย่างการแทนข้อความในหน่วยความจำแบบมีบิตพาริตี้
|
หน่วยความจำ
|
|
บิตพาริตี้
|
B
|
๐๑๐๐๐๐๑๐
|
|
๐
|
A
|
๐๑๐๐๐๐๐๑
|
|
๐
|
N
|
๐๑๐๐๑๑๑๐
|
|
๐
|
G
|
๐๑๐๐๐๑๑๑
|
|
๐
|
K
|
๐๑๐๐๑๐๑๑
|
|
๐
|
O
|
๐๑๐๐๑๑๑๑
|
|
๑
|
K
|
๐๑๐๐๑๐๑๑
|
|
๐
|
การแทนคำสั่งในหน่วยความจำ หน่วยควบคุมของคอมพิวเตอร์ที่อยู่ในซีพียู ทำการอ่านคำสั่งจากหน่วยความจำมาแปลความหมายและกระทำตาม คำสั่งคอมพิวเตอร์พื้นฐานที่สุดเรียกว่า ภาษาเครื่อง (Machine Language) ภาษาเครื่องมีลักษณะเป็นรหัสที่ใช้ตัวเลขฐานสอง ตัวเลขฐานสองเหล่านี้แทนชุดรหัสคำสั่ง คอมพิวเตอร์เครื่องหนึ่งมีคำสั่งที่ใช้ได้หลายร้อยคำสั่ง แต่ละคำสั่งจะมีความหมายเฉพาะ เช่น คำสั่งนำข้อมูลที่มีค่าเป็น ๓ จากหน่วยความจำตำแหน่งที่ ๘๐๐๐ มาบวกกับข้อมูลที่มีค่าเป็น ๕ ในตำแหน่งที่ ๘๐๐๑ ผลลัพธ์ที่ได้ให้เก็บไว้ในหน่วยความจำตำแหน่งที่ ๘๐๐๒ เมื่อเขียนคำสั่งเป็นภาษาเครื่องจะมีลักษณะเป็นตัวเลขฐานสองเรียงต่อกันเป็นจำนวนมาก ซึ่งเข้าใจได้ยาก จึงมักใช้ตัวอักษรแทนรหัสภาษาเครื่องเหล่านี้
ตัวอย่างการแทนภาษาเครื่องในหน่วยความจำ
ตัวอักษรแทนรหัสภาษาเครื่อง
|
ภาษาเครื่อง
|
LD A,(๘๐๐๐)
|
๐๐๑๑๑๐๑๐,๐๐๐๐๐๐๐๐,๑๐๐๐๐๐๐๐
|
LD B,A
|
๐๑๐๐๐๑๑๑
|
LD A,(๘๐๐๑)
|
๐๐๑๑๑๐๑๐,๐๐๐๐๐๐๐๑,๑๐๐๐๐๐๐๐
|
ADD A,B
|
๑๐๐๐๐๐๐๐
|
LD (๘๐๐๒),A
|
๐๐๑๑๐๐๑๐,๐๐๐๐๐๐๑๐,๑๐๐๐๐๐๐๐
|
รหัสภาษาเครื่อง เมื่อเก็บอยู่ในหน่วยความจำของคอมพิวเตอร์จะมีลักษณะเรียงต่อกันไป สมมติให้ส่วนของโปรแกรมเก็บในหน่วยความจำตำแหน่งเริ่มจาก ๑๐๐๐ และข้อมูลเก็บไว้ที่ตำแหน่งเริ่มจาก ๘๐๐๐ ดังตารางที่ ๔.๔ การเก็บข้อมูลและคำสั่งลงในหน่วยความจำด้วยรหัสเลขฐานสองภาษาสั่งการพื้นฐานที่ใช้รหัสตัวเลขฐานสองนี้เรียกว่า ภาษาเครื่อง คอมพิวเตอร์ที่ใช้ซีพียูต่างตระกูลกันจะมีภาษาเครื่องที่ต่างกัน เช่น เครื่องที่ใช้ซีพียูเพนเทียมกับซีพียูที่ใช้ในเครื่องแมกอินทอช มีรหัสคำสั่งต่างกัน
รหัสภาษาเครื่อง
|
ตำแหน่ง
|
หน่วยความจำ
|
|
บิตพาริตี้
|
LD A,(๘๐๐๐)
|
๑๐๐๐
|
๐๐๑๑๑๐๑๐
|
|
๐
|
๑๐๐๑
|
๐๐๐๐๐๐๐๐
|
|
๐
|
๑๐๐๒
|
๑๐๐๐๐๐๐๐
|
|
๑
|
LD B,A
|
๑๐๐๓
|
๐๑๐๐๐๑๑๑
|
|
๐
|
LD A,(๘๐๐๑)
|
๑๐๐๔
|
๐๐๑๑๑๐๑๐
|
|
๐
|
๑๐๐๕
|
๐๐๐๐๐๐๐๑
|
|
๑
|
๑๐๐๖
|
๑๐๐๐๐๐๐๐
|
|
๑
|
ADD A,B
|
๑๐๐๗
|
๑๐๐๐๐๐๐๐
|
|
๑
|
LD (๘๐๐๒),A
|
๑๐๐๘
|
๐๐๑๑๐๐๑๐
|
|
๑
|
๑๐๐๙
|
๐๐๐๐๐๐๑๐
|
|
๑
|
๑๐๑๐
|
๑๐๐๐๐๐๐๐
|
|
๑
|
-
|
-
|
-
|
|
-
|
-
|
-
|
|
|
-
|
-
|
-
|
-
|
|
|
-
|
-
|
-
|
|
-
|
-
|
-
|
-
|
|
-
|
ข้อมูล
|
๘๐๐๐
|
๐๐๐๐๐๐๑๑
|
|
๐
|
๘๐๐๑
|
๐๐๐๐๐๑๐๑
|
|
๐
|
ผลลัพธ์
|
๘๐๐๒
|
๐๐๐๐๑๐๐๐
|
|
๑
|
รหัสแทนข้อมูล
บิต ไบต์ เวิร์ด
เลข 0 และ 1ในระบบฐานสองแต่ละตัวเรียกว่าบิต (bit) ย่อมาจากคำว่าBinary Digit บิตเป็นหน่วยเล็กที่สุดในการเก็บข้อมูลด้วยคอมพิวเตอร์แต่เนื่องจากบิตเดียวไม่สามารถเก็บข้อมูลตัวเลข ตัวอักษร และสัญลักษณ์พิเศษต่าง ๆได้ครบ ดังนั้นจึงต้องรวมบิตหลายบิตเข้าเป็นกลุ่มเรียกว่าไบต์ (byte) แต่ละไบต์จะแทนอักขระหนึ่งตัวโดยปกติแล้วใช้แปดบิตรวมกันเป็นหนึ่งไบต์ในการผลิตเครื่องคอมพิวเตอร์จะต้องคำนึงถึงรหัสที่ใช้แทนข้อมูลความจุของหน่วยความจำและความจุของที่เก็บข้อมูลสำรองในคอมพิวเตอร์ซึ่งหน่วยของความจุที่เก็บข้อมูลจะมีหน่วยเป็นหน่วยของไบต์และหากมีความจุสูงก็อาจใช้หน่วยความจุเป็นกิโลไบต์ (Kilobyte) โดยหนึ่งกิโลไบต์มีค่าเป็น 1,024 ไบต์ ใช้สัญลักษณ์ KB หรือ K แทน(บางครั้งอาจใช้ค่าประมาณ 1 กิโลไบต์ ประมาณ 1,000 ไบต์) ดังนั้นถ้าหน่วยความจำขนาด 640 กิโลไบต์ จะเก็บข้อมูลได้ 640 x 1,024 หรือ 655,360 ไบต์นอกจากนี้ยังมีหน่วยความจุเป็นเมกะไบต์ (Megabyte)ซึ่งมีค่าเป็น 1,024 x1,024 หรือ1,048,576 ไบต์ ใช้สัญลักษณ์ MB หรือ M แทน (บางครั้งอาจใช้ค่าประมาณ 1เมกะไบต์ ประมาณ 1,000,000 ไบต์หรือหนึ่งล้านไบต์)
ปัจจุบันนี้หน่วยความจำมีความจุมากขึ้นจนอยู่ในหน่วยของจิกะไบต์(Gigabyte) ซึ่งมีค่าเป็น 1,024 x1,024 x1,024ไบต์ หรือ 1,073,741,824 ไบต์ใช้สัญลักษณ์ GB หรือ G แทน (บางครั้งอาจใช้ค่าประมาณ 1 จิกะไบต์ ประมาณ1,000,000,000 ไบต์ หรือหนึ่งพันล้านไบต์)ในเครื่องคอมพิวเตอร์รุ่นเก่าจะมีหน่วยความจำหลักเพียง 640 กิโลไบต์แต่ในเครื่องคอมพิวเตอร์รุ่นใหม่ จะมีหน่วยความจำหลักที่มีความจุตั้งแต่ 8 เมกะไบต์ถึง 32 เมกะไบต์ หรือมากกว่านี้ส่วนในเครื่องเมนเฟรมจะมีหน่วยความจำที่มีความจุถึงหน่วยของจิกะไบต์นอกจากนี้ ในการประมวลผลของคอมพิวเตอร์ยังมีการรวมกลุ่มของบิตจำนวนหนึ่งเรียกว่าเวิร์ด (word) ซึ่งในเครื่องคอมพิวเตอร์แต่ละชนิดจะมีขนาดของเวิร์ดไม่เท่ากันโดยทั่วไปแล้วถ้าคอมพิวเตอร์เครื่องใดมีเวิร์ดขนาดใหญ่กว่าก็แสดงว่าเครื่องนั้นมีประสิทธิภาพมากกว่าโดยในเครื่องไมโครคอมพิวเตอร์ที่ใช้กันอยู่ทั่วไปจะใช้ 8 บิตรวมกันเป็นหนึ่งเวิร์ดในเครื่องมินิคอมพิวเตอร์และไมโครคอมพิวเตอร์บางรุ่นใช้ 16บิตรวมกันเป็นหนึ่งเวิร์ด ในเครื่องระดับเมนเฟรมและมินิคอมพิวเตอร์บางรุ่นใช้ 32บิตรวมกันเป็นหนึ่งเวิร์ด ส่วนในซูเปอร์คอมพิวเตอร์ใช้ 64 บิตรวมกันเป็นหนึ่งเวิร์ดในเครื่องคอมพิวเตอร์รุ่นเก่าเป็นเครื่องขนาด 8 บิต (หนึ่งเวิร์ด) จะหมายความว่า ณขณะใดขณะหนึ่งเครื่องนั้นจะสามารถประมวลผลได้ครั้งละ 8 บิตแต่ในเครื่องขนาดใหญ่ขนาด 64 บิตจะสามารถประมวลผลได้ครั้งละ 64 บิตหรือ 8 ไบต์ทำให้ประมวลผลเร็วกว่าเครื่องรุ่นเก่าถึง 8 เท่า