3.2 การแทนข้อมูล

3.2 การแทนข้อมูล

ในชีวิตประจำวันของมนุษย์ต้องพบเจอกับจำนวนและการคำนวณอยู่ทุกวันซึ่งตัวเลขที่ใช้แทนการนับ ประกอบด้วยตัวเลข 10 ตัว คือ เลข 0-9 ซึ่งเรียกว่าระบบเลขฐานสิบ (decimal number system) สำหรับคอมพิวเตอร์นั้นส่วนใหญ่ที่ใช้กันอยู่เป็นอุปกรณ์อิเล็กทรอนิกส์ที่ทำงานแบบดิจิทัล การเก็บข้อมูลจะแทนด้วยสัญญาณไฟฟ้า ที่มีแรงดัน 2 สถานะ คือ ต่ำ (low) สูง (hight)เท่านั้น ซึ่งเราสามารถใช้ตัวเลข 0 และ 1 แทนระดับแรงดันไฟฟ้าเพื่อทำให้อธิบายได้ง่ายขึ้น โดยตัวเลข 0 จะแทนแรงดันไฟฟ้าต่ำ และตัวเลข 1 จะแทนแรงดันไฟฟ้าสูง ระบบตัวเลขที่มีเพียงแค่สองค่าในหนึ่งหลักนี้ เรียกว่าระบบเลขฐานสอง (binary number system) ตัวอย่าง เลขฐานสองเช่น 1102 ,101102

ระบบเลขฐานสอง

ระบบเลขฐานสองประกอบด้วยตัวเลขสองตัว คือ 0 และ 1 แต่ละหลักของเลขฐานสองจะเรียกว่าบิต (bit หรือ binary bit) ซึ่งบิตเป็นหน่วยข้อมูลที่เล็กที่สุดที่คอมพิวเตอร์จะสามารถเก็บและประมวลผลได้

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

หากใช้ข้อมูลขนาด 4 บิต หรือตัวเลขฐานสองจำนวน 4 หลักก็จะสามารถแทนข้อมูลได้ทั้งหมด 24 หรือ 16 แบบ สำหรับกลุ่มของเลขฐานสองจำนวน 8 บิต เรียกว่าไบต์(byte) ซึ่งสามารถใช้แทนค่าที่แตกต่างกันได้ถึง 28 หรือ 256 แบบ

0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111
8 1000
9 1001
15 1111
16 1 0000
254 1111 1110
255 1111 1111

ตัวอย่างการแทนค่าเลขฐานสอง

3.2.1 การแปลงค่าตัวเลขระหว่างเลขฐานสองและเลขฐานสิบ

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


ตัวอย่างแสดงการแปลง 29 ซึ่งเป็นเลขฐานสิบให้อยู่ในรูปเลขฐานสอง


ตัวอย่างแสดงการแปลง 34 ซึ่งเป็นเลขฐานสิบให้อยู่ในรูปเลขฐานสอง

สำหรับการแปลงค่าจำนวนเต็มฐานสองให้เป็นฐานสิบนั้น ต้องอาศัยค่าประจำหลักในเลขฐานสิบ แต่ละหลักจะมีค่าประจำหลักอยู่ซึ่งหาได้จากสิบยกกำลังเลขหลัก โดยเลขหลักที่นับจากหลักหน่วย หลักสิบ หลักร้อยและหลักพัน จะมีค่าเป็น 0,1,2และ3ตามลำดับ

หลักพัน หลักร้อย หลักสิบ หลักหน่วย
เลขประจำหลัก 3 2 1 0
การหาค่าประจำหลัก 103 102 101 100
ค่าประจำหลัก 1000 100 10 1

ค่าประจำหลักในเลขฐานสิบ

จากหลักการดังกล่าวนี้ เราสามารถหาค่าของเลขจำนวนใดๆ ได้จากค่าประจำหลักคูณกับตัวเลขในหลักนั้นๆ ดังตัวอย่างการหาค่าของ 243 ดังนี้


การหาค่าของ 243

เมื่อทราบหลักการหาค่าเลขจำนวนเต็มฐานสิบแล้ว การหาค่าเลขจำนวนเต็มฐานสองก็ใช้หลักการเดียวกันเพียงแต่เปลี่ยนการหาค่าประจำหลักการใช้ของสิบยกกำลังเลขประจำหลัก ไปใช้ค่าของสองยกกำลังเลขประจำหลักแทน นั่นคือค่าประจำหลักจากหลักทางขวาสุดมาทางซ้าย ดังตัวอย่าง

เลขประจำหลัก 7 6 5 4 3 2 1 0
การหาค่าประจำหลัก 27 106 105 104 103 102 101 100
ค่าประจำหลัก 128 64 32 16 8 4 2 1

ค่าประจำหลักในเลขฐานสอง


แสดงการแปลงเลข 100012 ให้อยู่ในรูปฐานสิบ


แสดงการแปลงเลข 1111 00112 ให้อยู่ในรูปฐานสิบ

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

ข้อมูลชนิดอื่นๆ ไม่ว่าจะเป็นอักขระ เสียง รูปภาพ ก็ล้วนต้องถูกแปลงให้อยู่ในกลุ่มของเลขฐานสองก่อนที่จะถูกจัดเก็บและประมวลผลด้วยคอมพิวเตอร์ทั้งสิ้น เพื่อให้คอมพิวเตอร์ทุกระบบสามารถแลกเปลี่ยนข้อมูลกันได้ จึงได้มีการกำหนดมาตรฐานการแปลงข้อมูลตัวอักขระเป็นรหัสเลขฐานสอง หรือที่เรียกกันว่า รูปแบบการเข้ารหัส(coding scheme) สำหรับมาตรฐานที่ใช้กันในปัจจุบันมีหลายมาตรฐานด้วยกัน เช่น บีซีดี แอสกี และยูนิโค้ด

1. รหัสบีซีดี

อุปกรณ์อิเล็กทรอนิกส์ขนาดเล็ก เช่น เครื่องคิดเลข นิยมใช้การเข้ารหัสแบบบีซีดี(Binary Coded decimal:BCD) ซึ่งเป็นการแทนตัวเลขแต่ละตัวด้วยรหัสเลขขนาด 4 บิต ที่มีค่าตรงกับตัวเลขนั้นๆ

ดังตัวอย่าง

เลข 0 1 2 3 4 5 6 7 8 9
รหัสบีซีดี 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

ถ้าเป็นเลขฐานสิบมากกว่าหนึ่งหลัก จะแทนแต่ละหลักด้วยรหัสเลขฐานสองที่มีค่าตรงกับตัวเลขในหลักนั้นๆ เช่น 243 เข้ารหัสแบบบีซีดีได้เป็น 0010 0100 0011 ข้อดีของรหัสบีซีดี คือ การแปลงระหว่างฐานสิบและฐานสองทำได้ง่ายและรวดเร็ว แต่ข้อเสียคือความยุ่งยากในการคำนวณทางคณิตศาสตร์และสิ้นเปลืองจำนวนบิตในการจัดเก็บข้อมูลมากกว่าการแทนค่าฐานสิบทั้งจำนวนด้วยเลขฐานสอง

2. รหัสแอสกี(American Standard Code for Information Interchange:ASCII)

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


ตารางรหัสแอสกีที่แทนอักขระภาษาอังกฤษและภาษาไทย

จากการที่เลขฐานสอง 1 ไบต์สามารถใช้แทนรหัสได้ 1 อักขระ ดังนั้นถ้ามีข้อความที่ประกอบด้วยอักขระหลายตัวก็ใช้รหัสเลขฐานสองหลายไบต์เรียงต่อกัน เช่น คำว่า คอมพิวเตอร์ จะแทนด้วยรหัสเลขฐานสอง คือ
1010 0100 1100 1101 1100 0001 1011 1110
1101 0100 1100 0111 1110 0000 1011 0101
1100 1101 1100 0011 1110 1100

ดังตัวอย่าง

เลขฐานสอง อักขระ
1010 0100
1100 1101
1100 0001
1011 1110
1101 0100
1100 0111
1110 0000
1011 0101
1100 1101
1100 0011
1110 1100

3. รหัสยูนิโค้ด(Unicode)

การเข้ารหัสยูนิโค้ด ได้ถูกพัฒนาขึ้นเพื่อให้รองรับตัวอักขระภาษาต่างๆ ในโลกได้เกือบทั้งหมด รหัสยูนิโค้ดมีด้วยกันหลายมาตรฐาน เช่น UTF-16 และ UTF-8 สำหรับแบบ UTF-8 ถูกออกแบบให้ใช้งานร่วมกับการเก็บข้อมูลที่มีการเข้ารหัสแบบแอสกีได้ง่าย และมีการรองรับการใช้งานในหลายระบบปฏิบัติการสมัยใหม่

Facebook Comments

Be the first to comment

Leave a Reply

Your email address will not be published.


*