วันอาทิตย์ที่ 24 กรกฎาคม พ.ศ. 2554

รหัสแทนข้อมูล

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

(ภาพจาก google)

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

(ภาพจาก google)


        8 Bit เป็น 1 Byte (เท่ากับ 1 Character)
        1,024 Bytes  เป็น1 MB (Kilobyte)
        1,024 KB เป็น 1 MB (Megabyte)
        1,024 MB เป็น 1 GB (Gigabyte)
        1,024 GBเป็น1 TB (Terabyte)


  ชนิดของรหัสแทนข้อมูล

1.รหัEBCDIC(ExtendedBinaryCodeDecimalInterchange Code)
รหัสเอบซีโคดพัฒนาโดยบริษัทไอบีเอ็มใช้แทนข้อมูลที่แตกต่างกันได้ทั้งหมด 2 หรือ 256 ชนิด การเก็บข้อมูลโดยใช้รหัสเอบซีดิกจะแบ่งรหัสออกเป็นสองส่วน คือโซนบิต (Zone bits) ซึ่งอยู่ทางด้านซ้ายมีจำนวน 4 บิตและนิวเมอริกบิต (Numeric bits)ในอีก 4 บิตที่เหลือ
2. รหัส ASCII (American Standard Code for Information Interchange)
รหัสแอสกีเป็นรหัสที่นิยมใช้กันมากจนสามมารถนับได้ว่าเป็นรหัสมาตรฐานที่ใช้ใน การสื่อสารข้อมูล ( Data Communications) ซึ่งจำเป็นต้องใช้รหัสการแทนข้อมูลเป็นระบบเดียวกัน เพื่อให้สามารถรับ ส่งข้อมูลได้ในความหมายเดียวกัน รหัสแอสกีใช้เลขฐานสอง 8 หลักแทนข้อมูลหนึ่งตัวเช่นเดียวกับรหัสเอบซีดิค นั่นคือ 1 ไบต์มีความยาวเท่ากับ 8 บิต รวมทั้งมีการแบ่งรหัสออกเป็นสองส่วนคือโซนบิตและนิวเมอริกบิตเช่นเดียวกันโปรแกรมประยุกต์บางโปรแกรมได้มีการเปลี่ยนแปลงการแทนข้อมูลด้วยรหัส ACSII ให้ต่างไปจากมาตรฐาน โดยรหัสการจัดรูปแบบตัวอักษร (formatiing) ให้เป็นตัวหนาหรือตัวเอียง เป็นต้น ทำให้โปรแกรมอื่น ๆ ไม่สามารถอ่านข้อมูลที่ถูกสร้างขึ้นจากโปรแกรมประเภทนี้ได้ เพราะมีการกำหนดรหัสแทนข้อมูลไม่ตรงกัน
(ภาพจากgoogle)


    3. รหัส UniCode
เป็นรหัสแบบใหม่ล่าสุดถูกสร้างขึ้นมาเนื่องจากรหัสขนาด 8 บิตซึ่งมีรูปแบบเพียง 256 รูปแบบ ไม่สามารถแทนภาษาเขียนแบบต่าง ๆ ในโลกได้ครบหมด โดยเฉพาะภาษาที่เป็นภาษาภาพ เช่น ภาษาจีนหรือภาษาญี่ปุ่นเพียงภาษาเดียวก็มีจำนวนรูปแบบเกินกว่า 256 ตัวแล้ว UniCode จะเป็นระบบรหัสที่เป็น16 บิต จึงแทนตัวอักษรได้มากถึง 65,536 ตัว ซึ่งเพียงพอสำหรับตัวอักษรและสัญลักษณ์กราฟฟิกโดยทั่วไป รวมทั้งสัญลักษณ์ทางคณิตศาสตร์ต่างๆ ในปัจจุบันระบบ UniCode มีใช้ในระบบปฏิบัติการ Window NT ระบบปฏิบัติการ UNIX บางรุ่น รวมทั้งมีการสนับสนุนชนิดข้อมูลแบบ UniCode ในภาษา JAVA ด้วย 
ประเภทของรหัสแทนข้อมูล
การที่ต้องมีรหัสแทนข้อมูล ก็เนื่องมาจากลักษณะของวัสดุที่ใช้เป็น bit ของหน่วยความจำมี 2 สถานภาพ ซึ่งแทนด้วย binary digit 0 หรือ 1 ดังได้กล่าวแล้ว รหัสที่ใช้แทนข้อมูลซึ่งต้องเป็น combination ของ 0 หรือ 1 รหัสแทนข้อมูลนี้มีหลายประเภทแต่ใช้กันมากมี 3 ประเภท  คือ
     1. BCD (Binary Coded Decimal)
บางทีเรียกว่ารหัส 6 bit (6 bit code) เป็นรหัสที่ใช้เนื้อที่ 6 bit สำหรับ 1 character โดยแบ่ง 6 bit ออกเป็น 2 ส่วน คือ 2 bit แบ่งสำหรับเป็น zone bit และ 4 bit หลังเป็น digit bit ในกรณีที่ข้อมูลเป็นตัวเลข zone bit จะมีค่าเป็น 00 และ digit bit จะมีค่าเท่ากับเลขฐาน 2 ซึ่งมีค่าเท่ากับตัวเลขนั้น  เพื่อให้กะทัดรัดซึ่งใช้เลขฐาน 8 ในการบอกรหัส BCD โดยแบ่งเลขฐาน 2 ออกเป็นกลุ่ม ๆ ละ 3 จะได้เลขฐาน 8 สองตัว
ตัวอย่างเช่น  9 2 4 3 A B เครื่องจะเก็บค่าเป็นเลขฐาน 8 ดังนี้
11
02
04
03
21
22

 ซึ่งเท่ากับรหัสแสดงเป็นเลขฐาน 2 ดังนี้
001111
000010
000100
000011
010001
010010


 2. EBCDIC (Extended Binary Coded Decimal Interchange Code)
คำนี้เสียงว่า เอ๊บซีดิค เป็นรหัสที่ใช้ 8 bit สำหรับ 1 character จึงเรียกอีกชื่อหนึ่งว่า รหัส 8 bit (8 bit code ) การขยายรหัสแทนข้อมูลจาก 6 bit สามารถมีรหัสแตกต่างกันได้ 64 ทาง ส่วนรหัส 8 bit หรือ EBCDIC ซึ่งทำให้สามารถมีรหัสได้มากขึ้นถึง 256-64 = 192 รหัส จำนวนรหัสที่มากขึ้นนี้ทำให้สามารถใช้แทนตัวอักษรทั้งตัวใหญ่และตัวเล็ก ตัวเลข และเครื่องหมายต่าง ๆ ได้ และยังมีรหัสเหลือใช้ซึ่งได้มีผู้นำมาประยุกต์เป็นรหัสสำหรับข้อมูลภาษาไทย
รหัส 8 bit แบ่งออกเป็น 2 ส่วน คือ 4 bit แรกเป็น zone bit และอีก 4 bit แรกเป็น zone bit เป็น digit bit จะแสดงเป็นเลขฐาน 2 และเลขฐาน  16 สำหรับเลขฐาน 16 นั้น ได้จากการแบ่งรหัสเลขฐาน 2 ออกเป็น 2 กลุ่มๆ ละ 4 ตัว จะได้เลขฐาน 16 สองตัว ซึ่งจะสะดวกและกะทักรักกว่าการแสดงเป็นเลขฐาน 2 มาก
ตัวอย่างเข่น ค่า 0243AB จะเท่ากับรหัสแสดงเป็นเลขฐาน 16 ดังนี้
F0
F2
F4
F3
C1
C2


ซึ่งเท่ากับรหัสแสดงเป็นเลขฐาน 2 ดังนี้
11111001
11110010
11110100
11110011
11000001
11000010

3. Pure Binary
บางทีเรียก ture binary code เป็นรหัสที่ใช้สำหรับข้อมูลที่จำเป็นตัวเลขเท่านั้น โดยเครื่องคอมพิวเตอร์จะกำหนดเนื้อที่จำนวนตายตัวสำหรับข้อมูลแต่ละจำนวน เช่นเครื่องคอมพิวเตอร์ IBM 360 กำหนดเนื้อที่ 16,32 หรือ 64 bit สำหรับข้อมูล 1 จำนวน โดยทั่วไป programmer จะเป็นผู้บอกเครื่องว่าต้องการให้ตัวแปรใดใช้ขนาดเนื้อที่ชนิดใด (16,32 หรือ 64 bit ) อย่างไรก็ตามในการใช้รหัสแทนข้อมูลแบบ pure binary นี้ จะกำหนดให้ bit ซ้ายสุด เป็น sing bit คือ ถ้า บิตแรกทางด้านซ้ายมีค่าเป็น 0 แสดงว่าเป็นค่าบวก ถ้ามีค่าเป็น 1 แสดงว่ามีค่าลบ จำนวน bit ที่เหลือจะเป็น binary number ซึ่งมีค่าเท่ากับจำนวนเลขนั้น 

อยากรู้เรื่องเกี่ยวกับระบบตัวเลขและการแทนข้อมูลในหน่วยความจำ คลิ๊กเรยจ๊








ผู้จัดทำ
นางสาว จิราภรณ์  มิตรวงค์
นางสาว นันทิยา  แก้วคนพา
เพื่อการศึกษารายวิชาเทคโนโลยีสารสนเทศและการประยุกต์ใช้




การจัดการข้อมูลด้วยคอมพิวเตอร์และฐานข้อมูล.  ค้นคืนเมื่อ มิถุนายน 13,2554, 
           จาก http://cptd.chandra.ac.th/selfstud/it4life/data.htm
            ข้อมูลและสารสนเทศ.  ค้นคืนเมื่อ มิถุนายน 13,2554, จาก
           http://ns1.tanti.ac.th/Com-tranning/IT/technof2.htm

1 ความคิดเห็น: