วันพฤหัสบดีที่ 14 สิงหาคม พ.ศ. 2557

รหัสแทนข้อมูลในคอมพิวเตอร์


รหัสแทนข้อมูล  หมายถึง รหัสที่ใช้แทนตัวอักขระ ซึ่งประกอบด้วยตัวอักษร ตัวเลข หรือสัญลักษณ์พิเศษอื่น ๆ ที่ใช้ในโปรแกรมคอมพิวเตอร์ เพราะว่าข้อมูลที่เก็บไว้ในหน่วยความจำของคอมพิวเตอร์จะแทนด้วยรหัสเลขฐานสองที่มีเลข ๐ กับ ๑ วางเรียงกัน ที่นิยมใช้มี ๓ รหัสคือ รหัสบีซีดี รหัสแอบซีดิก รหัสแอสกี้
รหัสแอสกี้ (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 ๐๑๐๐๐๑๐๑           <-- บิตพาริตี้

ข้อมูล มีเลข ๑ สองตัว ซึ่งเป็นจำนวนคู่อยู่แล้ว ดังนั้นจึงใส่บิตพาริตี้เป็นเลข ๐  ข้อมูล 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


๑๐๐๘
๐๐๑๑๐๐๑๐

๑๐๐๙
๐๐๐๐๐๐๑๐

๑๐๑๐
๑๐๐๐๐๐๐๐

-
-
-

-
-
-


-
-
-
-


-
-
-

-
-
-
-

-
ข้อมูล

๘๐๐๐
๐๐๐๐๐๐๑๑

๘๐๐๑
๐๐๐๐๐๑๐๑

ผลลัพธ์
๘๐๐๒
๐๐๐๐๑๐๐๐







รหัสแทนข้อมูล
บิต ไบต์ เวิร์ด
เลข และ 1ในระบบฐานสองแต่ละตัวเรียกว่าบิต (bit) ย่อมาจากคำว่าBinary Digit บิตเป็นหน่วยเล็กที่สุดในการเก็บข้อมูลด้วยคอมพิวเตอร์แต่เนื่องจากบิตเดียวไม่สามารถเก็บข้อมูลตัวเลข ตัวอักษร และสัญลักษณ์พิเศษต่าง ๆได้ครบ ดังนั้นจึงต้องรวมบิตหลายบิตเข้าเป็นกลุ่มเรียกว่าไบต์ (byte) แต่ละไบต์จะแทนอักขระหนึ่งตัวโดยปกติแล้วใช้แปดบิตรวมกันเป็นหนึ่งไบต์ในการผลิตเครื่องคอมพิวเตอร์จะต้องคำนึงถึงรหัสที่ใช้แทนข้อมูลความจุของหน่วยความจำและความจุของที่เก็บข้อมูลสำรองในคอมพิวเตอร์ซึ่งหน่วยของความจุที่เก็บข้อมูลจะมีหน่วยเป็นหน่วยของไบต์และหากมีความจุสูงก็อาจใช้หน่วยความจุเป็นกิโลไบต์ (Kilobyte) โดยหนึ่งกิโลไบต์มีค่าเป็น 1,024 ไบต์ ใช้สัญลักษณ์ KB หรือ แทน(บางครั้งอาจใช้ค่าประมาณ กิโลไบต์ ประมาณ 1,000 ไบต์) ดังนั้นถ้าหน่วยความจำขนาด 640 กิโลไบต์ จะเก็บข้อมูลได้ 640 x 1,024 หรือ 655,360 ไบต์นอกจากนี้ยังมีหน่วยความจุเป็นเมกะไบต์ (Megabyte)ซึ่งมีค่าเป็น 1,024 x1,024 หรือ1,048,576 ไบต์ ใช้สัญลักษณ์ MB หรือ แทน (บางครั้งอาจใช้ค่าประมาณ 1เมกะไบต์ ประมาณ 1,000,000 ไบต์หรือหนึ่งล้านไบต์)
ปัจจุบันนี้หน่วยความจำมีความจุมากขึ้นจนอยู่ในหน่วยของจิกะไบต์(Gigabyte) ซึ่งมีค่าเป็น 1,024 x1,024 x1,024ไบต์ หรือ 1,073,741,824 ไบต์ใช้สัญลักษณ์ GB หรือ แทน (บางครั้งอาจใช้ค่าประมาณ จิกะไบต์ ประมาณ1,000,000,000 ไบต์ หรือหนึ่งพันล้านไบต์)ในเครื่องคอมพิวเตอร์รุ่นเก่าจะมีหน่วยความจำหลักเพียง 640 กิโลไบต์แต่ในเครื่องคอมพิวเตอร์รุ่นใหม่ จะมีหน่วยความจำหลักที่มีความจุตั้งแต่ เมกะไบต์ถึง 32 เมกะไบต์ หรือมากกว่านี้ส่วนในเครื่องเมนเฟรมจะมีหน่วยความจำที่มีความจุถึงหน่วยของจิกะไบต์นอกจากนี้ ในการประมวลผลของคอมพิวเตอร์ยังมีการรวมกลุ่มของบิตจำนวนหนึ่งเรียกว่าเวิร์ด (word) ซึ่งในเครื่องคอมพิวเตอร์แต่ละชนิดจะมีขนาดของเวิร์ดไม่เท่ากันโดยทั่วไปแล้วถ้าคอมพิวเตอร์เครื่องใดมีเวิร์ดขนาดใหญ่กว่าก็แสดงว่าเครื่องนั้นมีประสิทธิภาพมากกว่าโดยในเครื่องไมโครคอมพิวเตอร์ที่ใช้กันอยู่ทั่วไปจะใช้ บิตรวมกันเป็นหนึ่งเวิร์ดในเครื่องมินิคอมพิวเตอร์และไมโครคอมพิวเตอร์บางรุ่นใช้ 16บิตรวมกันเป็นหนึ่งเวิร์ด ในเครื่องระดับเมนเฟรมและมินิคอมพิวเตอร์บางรุ่นใช้ 32บิตรวมกันเป็นหนึ่งเวิร์ด ส่วนในซูเปอร์คอมพิวเตอร์ใช้ 64 บิตรวมกันเป็นหนึ่งเวิร์ดในเครื่องคอมพิวเตอร์รุ่นเก่าเป็นเครื่องขนาด บิต (หนึ่งเวิร์ด) จะหมายความว่า ณขณะใดขณะหนึ่งเครื่องนั้นจะสามารถประมวลผลได้ครั้งละ บิตแต่ในเครื่องขนาดใหญ่ขนาด 64 บิตจะสามารถประมวลผลได้ครั้งละ 64 บิตหรือ ไบต์ทำให้ประมวลผลเร็วกว่าเครื่องรุ่นเก่าถึง เท่า

ไม่มีความคิดเห็น:

แสดงความคิดเห็น