วันอาทิตย์ที่ 10 พฤศจิกายน พ.ศ. 2556

เรื่อง ข้อ 4 - float

กลุ่มที่ 4 เรื่อง Data representation (- Float)
                         
สมาชิกในกลุ่ม ห้อง สบค. 2/4
                          นางสาวช่อนภา ศรีวงษ์                    เลขที่ 4
                         นางสาววัชราภรณ์ อรัญวาส             เลขที่ 12

                         นางสาวสมฤทัย  ชาที                         เลขที่ 15


การแทนรหัสข้อมูล (Data Representation)

         รหัสข้อมูลในคอมพิวเตอร์ คอมพิวเตอร์เป็นเครื่องมืออุปกรณ์ทางอิเล็กทรอนิกส์ ที่ประกอบด้วยวงจรทางอิเล็กทรอนิกส์ จำนวนมาก ที่ใช้กระแสไฟฟ้าในการทำงาน นั่นแสดงว่าการทำงานของระบบคอมพิวเตอร์เป็นการทำงาน ในสภาวะของความต่างศักดิ์ทางไฟฟ้า โดยตรวจสอบว่าในหนึ่งหน่วยเวลานั้น มีกระแสไฟฟ้าในวงจรหรือไม่ จากการที่ไฟฟ้ามีสองสถานะ(On/Off) จึงเป็นข้อกำหนดสำหรับการสื่อสารในระบบคอมพิวเตอร์ว่าสถานะที่มีไฟฟ้าให้สื่อความหมายว่าเป็น "1" และสถานะที่ไม่มี ไฟฟ้าให้สื่อความหมายว่าเป็น "0" สถานะทางไฟฟ้าตรงกับระบบเลขจำนวนที่มนุษย์ใช้กันอยู่คือ
                  ระบบเลขฐานสอง(Binary Number) จึงเป็นการสื่อความหมายกันทั่วๆไปว่า ระบบคอมพิวเตอร์นั้นใช้ข้อมูลที่เป็นเลขฐานสองในการประมวลผลใดๆ ดังนั้นข้อมูลที่เราจะนำเข้าสู่ระบบคอมพิวเตอร์จะต้องถูกแปลงให้อยู่ในสถานะเลขฐานสองเพื่อให้สามารถสื่อความหมายกับระบบคอมพิวเตอร์ได้ การแทนข้อมูลด้วยรหัสเลขฐานสองนี้เรียกว่า "การแทนรหัสข้อมูล" (Data Code) จำนวนหลักของรหัสแทนข้อมูลเป็นตัวกำหนดว่า การจัดรูปแบบรหัสแทนข้อมูลนั้นสามารถแทนข้อมูลได้จำนวนเท่าไหร่ เช่น รหัสเอบซีดิก(EBCDIC : Extended Binary Code Decimal Interchange Code) ใช้จำนวนหลักสำหรับการแทนข้อมูล ทั้งหมด 8 หลัก( 8 Digit) แทนข้อมูลได้ 28 = 256 รหัสข้อมูล(Character) (ตามหลักการของการจัดหมู่ มีทั้งหมด n ตำแหน่ง แต่ละตำแหน่งเป็นได้ 2 สถานะคือ 0 หรือ 1 รูปแบบของการจัดหมู่ที่ไม่ซ้ำกันเลยได้ 2n รูปแบบ) เช่น รหัสข้อมูล 1010 แทนข้อมูล "A" รหัสแทนข้อมูล 1001 แทนข้อมูล "9" เป็นต้น อีกตัวอย่างหนึ่ง รหัส แอสกี(ASCII : American Standard Code International Interchange) แบบ หลักแทนรหัสข้อมูลได้ทั้งหมด 128 รหัสข้อมูล เช่น รหัสแทนข้อมูล 100-0001 แทนข้อมูล"A"เป็นต้น 
วัตถุประสงค์
           เพื่อให้นักศึกษามีความรู้เกี่ยวกับระบบคอมพิวเตอร์ การประมวลผลข้อมูล ระบบจำนวน การออกแบบงานเชิงโครงสร้าง แล้วพัฒนาเป็นโปรแกรมระดับสูงและการสื่อสารข้อมูล
ประเด็นเนื้อหาและลำดับการนำเสนอ
1.การแทนรหัสข้อมูล
การแทนข้อมูลในคอมพิวเตอร์
ขนาดของข้อมูล (Word Size)
การเข้ารหัสเลขฐานสอง(Binary Encoding)
2.ลักษณะโครงสร้างของข้อมูล (Data Structure)
ข้อมูลและการแทนข้อมูลในหน่วยความจำ
ข้อมูลในเครื่องคอมพิวเตอร์
3.ระบบเลขฐาน
การแปลงเลขฐาน
ฐานตัวเลข
การตรวจสอบความผิดพลาดของข้อมูล (Error Checking)
บิตตรวจพาริตี้ (Parity Check bit)
1. การแทนรหัสข้อมูล
รหัส (Code) หมายถึงสัญลักษณ์ในการแทนข่าวสารในรูปแบบที่เหมาะสม
รหัสมีความจำเป็นอย่างมากเกี่ยวกับการติดต่อระหว่างผู้ใช้กับเครื่องคอมพิวเตอร์
การประมวลผลข้อมูลโดยเขียนคำสั่งควบคุมให้เครื่องคอมพิวเตอร์ทำงานที่เราต้องการ หรือการส่งข้อมูลเข้าไปให้เครื่องคอมพิวเตอร์ประมวลผลโดยจะทำงานกับข้อมูลนี้ในรูปแบบรหัสแทนข้อมูล
การแทนข้อมูลในคอมพิวเตอร์ (Data Representation)
ข้อมูลมีหลายรูปแบบเช่น อักขระ สัญญาณเสียง ภาพ ฯลฯ
คอมพิวเตอร์รับรู้ได้เพียง 2 สถานะเท่านั้น เปิด/ปิด หรือ 1/0 เรา
สามารถนำไปแทนเลขฐานสองได้คือ 1 กับ 0
การจัดเก็บข้อมูลในลักษณะดังกล่าวคอมพิวเตอร์จะทำการแปลง
ข้อมูลเหล่านั้นให้เป็นข้อมูลในระบบเลขฐานสองเพื่อนำไปใช้งาน
ในทำนองเดียวกันสำหรับการส่งข้อมูลจากคอมพิวเตอร์สู่ภายนอก
จะต้องมีการแปลงข้อมูลกับคืน

ขนาดของข้อมูล (Word Size)
เลขฐานสอง 1 หลักสามารถแทนข้อมูลได้ 0 หรือ 1 เราเรียกว่าขนาด
ของข้อมูลเป็น บิต (BIT)
• 1 ไบต์ (Byte) มีขนาดของข้อมูลขนาด 8 บิต แทนสภาวะของข้อมูล
ได้ 256 สภาวะ (0-255)
• 1 เวิร์ด (Word) ขึ้นอยู่กับขนาดของบัสข้อมูลของเครื่องคอมพิวเตอร์
เช่น PC ปัจจุบัน 1 เวิร์ดมีขนาด 32 บิตเป็นต้น
การเข้ารหัสเลขฐานสอง (Binary Encoding)
เป็นการแปลงข้อมูลที่เป็นตัวอักษร ตัวเลข และสัญลักษณ์พิเศษเป็นตัว
เลขฐานสองเพื่อป้อนให้กับคอมพิวเตอร์
มีรหัสที่นิยมใช้อยู่ 2 รหัสข้อมูลได้แก่ EBCDIC และ ASCII โดยใช้ข้อมูล
ขนาด 1 ไบต์ในการเข้ารหัส
ปัจจุบันใช้รหัส UNICODE (เนื่องจากความต้องการรหัสสำหรับภาษา
ท้องถิ่น) ใช้เลขฐานสองขนาด 16 บิต สามารถแทนข้อมูลอักขระได้ทุกภาษา

2. ลักษณะโครงสร้างของข้อมูล (Data Structure)
Bit หน่วยข้อมูลที่เล็กที่สุดทางคอมพิวเตอร์ มีค่าเป็น 0 หรือ 1

บิต(Bit) บิต เป็นหน่วยข้อมูลที่เล็กที่สุด ที่นำมาประกอบกันเข้าเป็น หนึ่งรหัสแทนข้อมูล แบบ การแทนรหัสข้อมูล ในคอมพิวเตอร์ จำนวนหลักที่ใช้ในเลขฐานสองสำหรับข้อมูล 1 รหัสข้อมูล นั่นคือ จำนวนบิตที่ใช้สำหรับข้อมูล 1 รหัสข้อมูล หรือ 1 หลักก็คือ 1 บิตนั่นเอง ดังนั้น รหัสเอบซีดิก ที่ใช้รหัสแทนข้อมูลแบบ 8 หลัก จึงกล่าวได้ว่า 8 บิตเป็น 1 รหัสข้อมูล และสำหรับ รหัสแอสกี ที่ใช้รหัสแทนข้อมูลแบบ 7 หลัก แสดงว่า 7 บิตเป็น 1 รหัสข้อมูล รหัสแทนข้อมูล A (EBCDIC) 1 1 0 0 - 0 0 0 1 ตำแหน่ง บิต ที่ 1 2 3 4 5 6 7 8
Byte ประกอบไปด้วยหลาย ๆ บิต เช่น 8 บิต เป็น 1 ไบต์

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

เท่ากับ 2 ไบต์ (ในระบบเครื่อง 16 บิต) หรือเท่ากับ 4 ไบต์ (ในระบบเครื่อง 32 บิต) เป็นต้น
Character อันได้แก่ตัวเลข 0-9 ตัวอักษร A-Z และ สัญลักษณ์พิเศษต่าง ๆ จะสัมพันธ์กับ

ไบต์และเวิร์ด
อักขระ (Character) 1. ตัวอักขระ (Character) หมายถึง สัญลักษณ์ต่าง ๆ ที่ใช้ภาษามนุษย์ แบ่งออกเป็น3 ประเภท คือ
1.1 ตัวเลข (Numeric) คือ เลขฐาน 10 ซึ่งประกอบด้วยตัวเลข 0,1,2,3,4,5,6,7,8,9
1.2 ตัวอักษร (Alphabetic) คือ ตัวอักษร A ถึง Z
1.3 สัญลักษณ์พิเศษ (Special Symbol) เช่น เครื่องหมายทางคณิตศาสตร์ และสัญลักษณ์ต่าง เช่น +, -, *, /? #, &

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

Field ได้แก่ Character ตั้งแต่ 1 ตัวขึ้นไปรวมกัน เป็นฟิลด์ที่มีความหมาย เช่น เลขประจำตัว ชื่อพนักงาน
เขตข้อมูล (Field) เขตข้อมูล หมายถึง กลุ่มของข้อมูลที่มีชนิดเดียวกัน เช่น เขตข้อมูลอายุ (15, 60, 24 ปี) เขตข้อมูลสีผม (ดำ น้ำตาล แดง) เขตข้อมูลระดับคะแนน (4, 3, 2, 1, 0) ข้อมูลในวงเล็บเป็นค่าของข้อมูลที่เป็นไปได้สำหรับเขตข้อมูลนั้น เขตข้อมูลนี้เรียกกันโดยทั่วไปว่าฟิลด์ (Field)
Record ได้แก่ ฟิลด์ตั้งแต่ 1 ฟิลด์ขึ้นไปที่มีความสัมพันธ์เกี่ยวข้องกันรวมกันเป็นเรคคอร์ด
เช่น ชื่อ เลขประจำตัว ยอดขายของพนักงาน 1 คน รวมกันเป็นข้อมูลของพนักงานขาย 1 เรคคอร์ด
ระเบียน (Record) ระเบียน หมายถึง ข้อมูลโครงสร้างชนิดหนึ่งที่รวมเอา เขตข้อมูลหลายๆ เขตข้อมูล มาไว้ด้วยกันซึ่งเขตข้อมูลเหล่านี้จะต้องเป็นเขตข้อมูลที่มีความสัมพันธ์กัน และบ่งชี้ถึงข้อมูลชุดเดียวกัน เช่นระเบียนข้อมูลนักศึกษา ประกอบด้วยเขตข้อมูล รหัสประจำตัวนักศึกษา ชื่อ-สกุล วันเดือนปีเกิด เป็นต้น การเพิ่มรายละเอียดของระเบียนจะทำได้โดยเพิ่มเขตข้อมูลเข้าไปในระเบียน การใช้ข้อมูลโครงสร้างแบบระเบียนนี้ เพื่อง่ายในการอ้างอิงเวลาเข้าถึงข้อมูล ในทางปฏิบัติแล้วไม่สามารถประมวลผลข้อมูลที่เป็นระเบียนได้ ถ้าต้องการประมวลผลจะต้องประมวลข้อมูลที่เป็นค่าของเขตข้อมูลใด เขตข้อมูลหนึ่ง ที่ต้องการในระเบียนนั้น ๆ จะพบว่าข้อมูลทั้งหมดนี้ประกอบด้วย เขตข้อมูล 5 เขตข้อมูล คือ รหัสประจำตัว , ชื่อ-สกุล, วันเดือนปีเกิด, วันเข้าศึกษา, หมู่เรียน ซึ่งจะแสดงในแนวตั้งหรือเรียกว่าสดมภ์(column) และในแนวนอนหรือแถว(Row) หมายถึงจำนวนระเบียนที่มีอยู่ในรายการข้อมูลนี้ จำนวน 3 ระเบียน และจะเห็นว่าทุกๆระเบียนประกอบ
ด้วย 5 เขตข้อมูลเหมือนกัน
File ได้แก่ ข้อมูลหลายเรคคอร์ดที่เป็นข้อมูลเรื่องเดียวกัน เช่น เรคคอร์ดเกี่ยวกับพนักงาน

ขายทั้งหมดในหน่วยงานหนึ่งรวมกันเป็นแฟ้มข้อมูล ชื่อว่า แฟ้มหนักงานขาย
แฟ้มข้อมูล (File) แฟ้มข้อมูล หมายถึง หน่วยที่ใช้สำหรับการรวบรวมข้อมูลที่มีความสัมพันธ์กัน และทำการจัดเก็บไว้ในสื่อบันทึกข้อมูล แฟ้มข้อมูลแบ่งออกเป็น 2 ประเภท คือ แฟ้มข้อมูลแบบไม่มีโครงสร้าง หมายถึง แฟ้มข้อมูลที่มีการจัดเก็บข้อมูล ที่ไม่เป็นระเบียบไม่สามารถแบ่งข้อมูลในแฟ้มออกเป็นหมวดหมู่ย่อยได้ชัดเจน การเขียนโปรแกรมเพื่อทำการประมวลผลแฟ้มข้อมูลประเภทนี้ ต้องใช้ความสามารถของนักเขียนโปรแกรม ในการเขียนโปรแกรมเพื่อเข้าถึงข้อมูลที่ต้องการมากพอสมควร เช่น แฟ้มข้อมูลที่เป็นแฟ้มตัวอักษร (Text File) เป็นต้น

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

กุญแจข้อมูล (Key Field) กุญแจข้อมูล หมายถึง เขตข้อมูลที่ใช้สำหรับการค้นหาข้อมูลที่ต้องการจากแฟ้มข้อมูลแบบมีโครงสร้าง เพราะว่าแฟ้มข้อมูลนั้นประกอบด้วยระเบียนจำนวนมาก การค้นหาข้อมูลที่ต้องการนั้นจำเป็นจะต้องใช้เขตข้อมูลใดเขตข้อมูลหนึ่ง สำหรับการเข้าถึงข้อมูลในระเบียนต่างๆ เพื่อให้การเข้าถึงข้อมูลเป็นไปอย่างถูกต้องและรวดเร็ว กุญแจข้อมูล แบ่งเป็น 2 ประเภท คือ
7.1 กุญแจข้อมูลหลัก (Primary Key) หมายถึง กุญแจข้อมูล ที่ข้อมูลในเขตข้อมูลนี้ไม่ซ้ำกันเลยในแฟ้ม ข้อมูลนี้ ผลที่ได้จากการค้นหาจะได้ข้อมูลเพียง 1 ระเบียน หรือไม่พบข้อมูลระเบียนใดๆ ในแฟ้มข้อมูล กุญแจข้อมูล ประเภทนี้ เช่น รหัสประจำตัวนักศึกษา เลขที่บัตรประชาชน ซึ่งจะมีเพียง 1 ระเบียนเท่านั้นในแฟ้มข้อมูล
7.2 กุญแจข้อมูลรอง (Secondary key) หมายถึง กุญแจข้อมูลรอง ที่ข้อมูลในเขตข้อมูลนี้มีค่าที่ซ้ำกันได้ในแฟ้มข้อมูลนี้ ผลที่ได้จากการเข้าถึงแฟ้มข้อมูลด้วยคีย์อาจจะทำให้ได้ข้อมูลที่มากกว่า 1 ระเบียน หรือไม่พบข้อมูลระเบียนใดๆ กุญแจข้อมูล ประเภทนี้ถูกกำหนดขึ้นตามความต้องการของผู้ใช้ในขณะนั้นว่าต้องการข้อมูลจากเขตข้อมูลใด เช่น ต้องการรายงานข้อมูลนักศึกษาที่สังกัดหมู่เรียน วทบ. 1.2 ก็ต้องใช้ "หมู่เรียน" เป็นกุญแจรองเพื่อจำแนกหมู่เรียน เป็นต้น

ข้อมูลและการแทนข้อมูลในหน่วยความจำ Data Representation
ระบบเลขเป็นส่วนสำคัญของการทำงานภายในเครื่องคอมพิวเตอร์
ระบบเลขที่เราใช้กันอยู่ในชีวิตประจำวันเรียกว่าเลขฐานสิบ (Decimal)
คอมพิวเตอร์ใช้ระบบเลขฐานสอง (Binary) ในการแทนข้อมูลและการประมวลผล
ดังนั้นเลขทั้งสองระบบนี้จึงมีความสำคัญอย่างยิ่งต่อการศึกษาคอมพิวเตอร์
ส่วนเลขฐานอื่น ๆ ก็มีหลักการเช่นเดียวกัน
ในการเขียนเลขฐานต่าง ๆ นอกจากฐานสิบแล้ว จะเขียนเลขฐานห้อยท้ายทุกครั้ง เช่น (1010)2 หมายถึงเลขฐานสอง

การแทนรหัสข้อมูลที่เป็นจำนวนเลข (Numeric Data Representation)
การแทนข้อมูลแบบนี้ กำหนดเนื้อที่ในหน่วยความจำมีขนาดตายตัว (Fixed length word) สำหรับแทนตัวเลข 1 จำนวน
Half-word ใช้เนื้อที่ 2 ไบท์
Full-word ใช้เนื้อที่ 4 ไบท์
Double-word ใช้เนื้อที่ 8 ไบท์
1) เลขจำนวนเต็ม (Integer Representation)
1) เลขที่มีจุดทศนิยม (Floating Point Representation)
การแทนเลขจำนวนเต็ม
คอมพิวเตอร์แทนจำนวนเต็มด้วยหลักการ แทน2Complement นั่นคือ ใช้หลักในการแทนเลขลบและบวกเท่ากันถ้าเป็นจำนวนบวกจะขึ้นต้นด้วยเลข 0 ถ้าเป็น จำนวนลบจะขึ้นต้นด้วย 1 ถ้าต้องการเลขจำนวนมากก็เพิ่มจำนวนหลักให้มากขึ้นการแทนเลขจำนวนในคอมพิวเตอร์
1. การแทนค่าแบบ 2’s complement ในการแทนเลขจำนวนในคอมพิวเตอร์นั้นจะแทนตัวเลขที่อยู่ในรูปของเลขฐานสอง ซึ่งได้กล่าวไว้แล้วในตอนต้น ซึ่งจะใช้แทนเฉพาะเลขจำนวนบวกเท่านั้น แต่ในชีวิตประจำวัน จริงๆมีการแทนจำนวนด้วยเลขจำนวนลบด้วย ดังนั้นในการแทนข้อมูลในคอมพิวเตอร์สำหรับการประมวลผลซึ่งจะมีทั้ง เลขจำนวนบวกและเลขจำนวนลบข้อมูลที่เก็บจึงอยู่ในรูป 2’Complement ดังนั้นในการหาค่าของเลขฐานสองที่เป็นค่าลบ หรือเราเรียกว่า เป็นการหาค่าคอมพลีเมนท์ของจำนวนนั้นนั่นเอง ซึ่งมีขั้นตอนในการหา 3 ขั้นดังนี้
 1.หาค่าของเลขฐานสองที่เป็นค่าบวก
2.ทำการสลับบิตโดยการเปลี่ยนค่าของแต่ละบิต จาก 0 ให้เป็น 1 และจาก 1 ให้เป็น 0 3.บวกค่า 1 กับค่าที่ได้ในขั้นตอนที่ 2 ดังนั้น ค่าที่ได้คือค่า คอมพลีเมนท์ หรือค่าลบ ของจำนวนข้างต้น
ขั้นตอนการทำ Floating point
เปลี่ยนเลขไปเป็นฐาน 16 Normalization เลขฐาน 16 (มีเลขหลังจุด และ ยกกำลัง)
เปลี่ยน Sign, Exponent, Mantissa เป็นเลขฐาน 2
Sign: 1 แทนค่าลบ 0 แทนค่าบวก
Mantissa: เปลี่ยนเป็นฐาน 2 เติมเลขจากขวา มา ซ้ายที่เหลือเติมศูนย์
Exponent เป็นได้ทั้งค่าบวก หรือ ลบ จึงต้องใช้วิธี Excess 64
Exponent 16 = 4016 + true exponent16
exponent16 ----> exponent 2
ตัวอย่าง ทำ Floating point
28 ----> 1C16
1C16 = (+.1C * 102)16
Sign ----> 0
Mantissa ----> 0001 11002
Exponent ----> 4016 + 216 = 42 16 -----> 100 00102
0 100 0010 0001 11000000..........................
การแทนรหัสข้อมูลที่เป็นอักขระ (Alphanumeric Data Representation)
รหัส BCD: Binary Coded Decimal Code
รหัส EBCDIC: Extended Binary Coded Decimal Interchange Code
รหัส ASCII: American Standard Code for Information Interchange
รหัส BCD ใช้ 6 บิตแทนอักขระ 1 ตัว ระบบนี้แทนอักขระได้ 64 ตัว (26 รูปแบบ)
C B A 8 4 2 1, Digit bit, Zone bit, Check bit/ Parity bit
รหัส BCD
การแทนรหัส BCD อักขระแบบตัวเลข (0 - 9) Zone Bit จะเป็น 00 อักขระแบบ
ตัวอักษร หรือ สัญลักษณ์พิเศษ Zone bit เป็น 11
รหัส EBCDIC
ใช้ 8 บิตแทนอักขระ 1 ตัว ระบบนี้แทนอักขระได้ 256 ตัว (28 รูปแบบ)C B A 8 4 2 1, Digit bit, Zone bit, Check bit/ Parity bit
รหัส EBCDIC
การบันทึกข้อมูลในระบบ EBCDIC มี 2 แบบ
การบันทึกแบบ Zone Decimal และ การบันทึกแบบ Packed Decimal การบันทึกแบบตัวเลข Zone bit มีค่าเป็น 1111 สำหรับเลขที่ไม่มีเครื่องหมายนำหน้า (12, F) 1100 สำหรับเลขที่มีเครื่องหมายบวก และ (+12, C) 1101 สำหรับเลขที่มีเครื่องหมายลบ (-12, D)
การแทนข้อมูลแบบ Packed Decimal
เป็นการเปลี่ยนลักษณะการเก็บรหัส EBCDIC ให้ใช้ในการคำนวณ การเปลี่ยนนี้จำนวนหลักสามารถยืดหยุ่นได้ ไม่ใช้กับตัวเลขที่เป็นจุดทศนิยม
วิธีการ PACK
“-123” สลับส่วน Zone bit และ Digit bit ของไบท์ขวาสุด ตัด Zone bit ของไบท์ ที่เหลือ
บีบข้อมูลซึ่งเป็น Digit Bit เข้ามา มักทำอยู่ในเลขฐาน 16 (123D) 16 วิธี Unpack ทำตรงกันข้าง กับการ Pack 1101 0001 1101 0010 1101 0011
รหัส ASCII
มี 2 ชนิด คือ 7 บิต กับ 8 บิต กำหนดให้ตัวเลขมีค่าน้อยกว่าตัวอักษรเป็นรหัสที่
นิยมในปัจจุบัน ลักษณะคล้าย EBCDIC มี Zone bit เป็น 0101 และ 011 สำหรับตัวเลข มี 1010 และ 100 สำหรับตัวอักษร
Parity bit หรือ Check bit
เป็นบิตที่ใช้ตรวจสอบการแทนรหัส มี 2 ระบบ
Even Parity ระบบจำนวนคู่ ระบบนี้ต้องมีบิตที่เป็นเลข 1 ทั้งหมดมีจำนวนเป็นเลขคู่
Odd Parity ระบบจำนวนคี่ ระบบนี้ต้องมีบิตที่เป็นเลข 1 ทั้งหมดมีจำนวนเป็นเลขคี่
1 1 1 0 0 0 1 0 1 1 0 1 0 1 0 1 1 0 0 0 1 1 1 1 0 1 0 1
ข้อมูลในเครื่องคอมพิวเตอร์
เครื่องคอมพิวเตอร์ในปัจจุบันนี้ทำงานในระบบดิจิตอล

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

ฐานสิบ (Decimal)
ฐานสอง (Binary)
ฐานแปด (Octal)
ฐานสิบหก (Hexadecimal)
3.1 ระบบเลขฐาน
ระบบเลขฐาน คือ การนำตัวเลขมารวมกันเพื่อให้้เกิดความหมาย เป็น ค่าที่ต้อง
อาศัยวิธีการ กำหนดหลักของตัวเลข ซึ่งเรียกว่า Positional Notation
ค่าหลักประจำตำแหน่งหาได้จากค่าของเลขจำนวนนั้น (Absolute Value) คูณกับ
ค่าประจำหลัก เลขฐานที่ยกกำลังตามหลักที่ปรากฏ
ซึ่งหลักการเขียนเลขฐานจะประกอบไปด้วย
1. ตัวเลขในฐาน ต้องมีค่าน้อยกว่าตัวเลขบ่งบอกค่าฐาน เช่น เลขฐานสอง จะมีเลขแค่ 2 ตัวคือ 0,1 เลขฐานสิบมีเลข 0 ถึง 9 เป็นต้น
2. เลขฐาน 10 ไม่นิยมเขียนตัวเลขบ่งบอกค่าฐาน
3. หากตัวเลขที่ใช้เขียนเลขฐานมีค่าเกิน 9 จะใช้ตัวอักษรภาษาอังกฤษแทนตัวเลข
ตัวอักษร A แทนเลข 10 ตัวอักษร B แทนเลข 11
ตัวอักษร C แทนเลข 12 ตัวอักษร D แทนเลข 13
ตัวอักษร E แทนเลข 14 ตัวอักษร F แทนเลข 15
ตอนที่ 3 ระบบเลขฐานที่เกี่ยวข้องกับคอมพิวเตอร์ คอมพิวเตอร์เข้าใจเฉพาะเลขฐานสองเท่านั้น แต่การเขียนด้วยเลขฐานสอง คือมีรหัส 0 กับ 1 เท่านั้นเป็นจำนวนมากๆทำให้คนเข้าใจยาก เราจึงใช้เลขฐานสองกลุ่มละ 4 หลัก แทน ทำให้เข้าใจและจำได้ง่ายขึ้น นั่นก็คือที่มาของเลขฐานสิบหก เพราะรหัสฐานสอง 4 หลักแทนด้วยเลขฐานสิบหก 1 หลัก
3.1 ระบบเลขฐาน เลขฐาน หมายถึงกลุ่มข้อมูลที่มีจำนวนหลัก (Digit) ตามชื่อของฐาน นั้นๆเช่น เลขฐานสอง ฐานแปด และฐานสิบ ประกอบด้วยข้อมูลตัวเลขจำนวนสองหลัก (0-1) แปดหลัก (0-7) และสิบหลัก (0-9) ตามลำดับ ดังรูปในตารางที่ 1 ในระบบคอมพิวเตอร์มีการใช้ระบบเลขฐาน 4 แบบ ประกอบด้วย 1).เลขฐานสอง (Binary Number) 2).เลขฐานแปด (Octal Number) 3).เลขฐานสิบ (Decimal Number) 4).เลขฐานสิบหก (Hexadecimal Number)
ตารางที่ 1 แสดงจำนวนตัวเลข ของเลขฐานต่างๆ
1).เลขฐานสอง คือตัวเลขที่มีค่าไม่ซ้ำกันสองหลัก ( 0 และ 1) เป็นเลขฐานเดียวที่เข้ากันได้กับ Hardware ของเครื่องคอมพิวเตอร์ได้โดยตรง เพราะการใช้เลขฐานอื่น จะสร้างความยุ่งยากให้กับเครื่องคอมพิวเตอร์อย่างมาก เช่น เลขฐานสิบมีตัวเลขที่เป็นสถานะที่ต่างกันถึง 10 ตัว ในขณะที่ระบบไฟฟ้ามีเพียง 2 สถานะ ซึ่งในช่วงเวลาหนึ่งๆมีเพียงสถานะเดียวเท่านั้น แต่ละหลักของเลขฐานสอง เรียกว่า Binary Digit (BIT) 2).เลขฐานแปด เลขฐานแปด มีความสัมพันธ์กับเลขฐานสอง คือ เลขฐานสองจำนวน 3 หลัก แทนด้วยเลข ฐานแปด 1 หลัก ดังนั้นเราจึงสามารถเขียนเลขฐานสอง 6 บิท แทนด้วยเลขฐานแปด 2 บิท การใช้เลขฐานแปดแทนเลขฐานสองทำให้จำนวนบิทสั้นลง 3).เลขฐานสิบ คือตัวเลขที่มีค่าไม่ซ้ำกันสิบหลัก (0,1,2,…,9) เป็นเลขฐานที่มนุษย์คุ้นเคยและใช้ในชีวิตประจำวันมากที่สุด ตัวเลขที่มีจำนวนมากกว่า 9 ให้ใช้ 10 ซึ่งเป็นการกลับไปใช้เลข 1 และ 0 อีก เพียงแต่ค่าของ 1 เปลี่ยนไปเป็น 10 เท่าของตัวมันเอง เช่น 333 (สามร้อยสามสิบสาม) แม้จะใช้ตัวเลข 3 ทั้งหมด แต่ตำแหน่งของตัวเลขย่อมมีความหมายตามตำแหน่งของแต่ละหลักนั้น กล่าวคือ หลักหน่วยน้อยกว่าหลักสิบ 10 เท่า หลักสิบน้อยกว่าหลักร้อย 10 เท่า ตามลำดับ
4).เลขฐานสิบหก เลขฐานสิบหก มีความสัมพันธ์กับเลขฐานสอง คือ เลขฐานสองจำนวน 4 หลัก แทนด้วย เลขฐานสิบหก 1 หลัก ดังนั้นเราจึงสามารถเขียนเลขฐานสอง 8 บิทแทนด้วยเลขฐานสิบหก 2 บิท การใช้เลขฐานสิบหกแทนเลขฐานสองทำให้จำนวนบิทสั้นลง
การแปลงเลขฐาน
การแปลงเลขจากหนึ่งไปยังอีกฐานหนึ่งนั้น ในระบบ Computer จะเกี่ยวข้องเฉพาะเลขฐานสอง เลขฐานแปด และเลขฐานสิบหก ดังนั้นสิ่งที่เราควรจะต้องรู้คือ
o การแปลงเลขฐานสิบเป็นเลขฐานสอง เลขฐานแปด และเลขฐานสิบหก
o การแปลงเลขฐานสอง เลขฐานแปด และเลขฐานสิบหก เป็นเลขฐานสิบ
o การแปลงเลขฐานสอง เป็นเลขฐานแปดและเลขฐานสิบหก
o การแปลงเลขฐานแปด และเลขฐานสิบหกเป็นเลขฐานสอง
o การแปลงเลขฐานแปดเป็นเลขฐานสิบหก
o การแปลงเลขฐานสิบหกเป็นเลขฐานแปด

การแปลงเลขฐานสิบ (Decimal number) เป็นเลขฐานสอง (Binary Number) เลขฐานแปด (Octal Number) และเลขฐานสิบหก (Hexadecimal number)
การแปลงเลขฐานสิบที่เป็นเลขจำนวนเต็มให้เป็นเลขฐานสอง เลขฐานแปดและเลขฐานสิบหก มีหลักการง่ายๆ และคล้ายคลึงกัน ซึ่งเราสามารถทำได้โดยการหารเลขฐานสิบที่ต้องการแปลงด้วยฐานของเลขที่ต้องการแปลง เช่น
ถ้าต้องการแปลงให้เป็นเลขฐานสอง ก็เอา 2 หาร
ถ้าต้องการแปลงให้เป็นเลขฐานแปด ก็เอา 8 หาร
ถ้าต้องการแปลงให้เป็นเลขฐานสิบหก ก็เอา 16 หาร

เศษที่เหลือจากการหารแต่ละครั้ง ก็คือคำตอบที่ต้องการ โดยเศษที่เหลือจากการหารครั้งแรก เป็นตัวที่มีนัยความสำคัญน้อยที่สุด (Least significant digit หรือ LSD ) และเศษที่เหลือจากการหารครั้งสุดท้ายเป็นตัวที่มีนัยความสำคัญสูงที่สุด (Most significant digit หรือ MSD)
ส่วนเลขฐานสิบที่เป็นทศนิยม ถ้าต้องการให้เป็นเลขฐานอื่นๆ ดังกล่าว ก็สามารถทำได้โดยการคูณจำนวนทศนิยมนั้นด้วยฐานของเลขที่ต้องการแปลง หลายๆ ครั้ง เช่น
ถ้าต้องการแปลงให้เป็นเลขฐานสอง ก็ให้เอา 2 คูณ
ถ้าต้องการแปลงให้เป็นเลขฐานแปด ก็ให้เอา 8 คูณ
ถ้าต้องการแปลงให้เป็นเลขฐานสิบหก ก็ให้เอา 16 คูณ

ผลลัพธ์จากการคูณที่เป็นเลขจำนวนเต็ม ก็คือ คำตอบที่ต้องการ ลองศึกษาจากตัวอย่างจากใบความรู้ต่อไปนี้ จะทำให้เข้าใจดีขึ้น
การแปลงเลขฐานสิบให้เป็นเลขฐานสอง เลขฐานแปด เลขฐานสิบหก
ตัวอย่างที่ 1.1 จงแปลง (25)10 ให้เป็นเลขฐานสอง (Binary number)
วิธีทำ 25 ÷ 2 = 12 เศษ 1
12 ÷ 2 = 6 เศษ 0
6 ÷ 2 = 3 เศษ 0
3 ÷ 2 = 1 เศษ 1
คำตอบหาได้โดยเรียงเศษจากล่างขึ้นบน ดังนั้น (25)10 = (11001)2
การแปลงเลขฐานสอง เลขฐานแปดและเลขฐานสิบหกเป็นเลขฐานสิบ
สามารถทำได้โดยการนำเลขแต่ละตำแหน่งของเลขฐานนั้นๆ คูณด้วยน้ำหนัก (Weighting) หรือค่าประจำหลัก ของเลขฐานนั้นแล้วนำมารวมกันทั้งหมดก็จะได้คำตอบที่ต้องการ
ตัวอย่างที่ 1.10 จงแปลง (11011)2 ให้เป็นเลขฐานสิบ (Decimal number)
วิธีทำ (11011)2
=
(1 x 24)+(1 x 23)+(0 x 22)+(1 x 21)+(1 x 20)
=
16+8+0+2+1
=
27

คำตอบ ดังนั้น (11011)2 = (27)10
การแปลงเลขฐานสองเป็นเลขฐานแปด และการแปลงเลขฐานแปดเป็นเลขฐานสอง
ตัวอย่างที่ 1 จงแปลง (110111010)2 ให้เป็นตัวเลขฐานแปด Octal
วิธีทำ ในการทำ เราต้องแบ่งเลข Binary ออกเป็นชุดๆ ละ 3 Bit โดยนับจากทางขวามาทางซ้าย ถ้าชุดสุดท้ายมีไม่ถึง 3 Bit ให้เติม 0 ลงไป แต่ถ้าเป็นทศนิยม การแบ่งเป็นชุดให้นับจาก ทางซ้ายไปทางขวา เมื่อแบ่งได้เป็นชุดแล้วก็ให้แทนค่าเป็นเลขฐานแปดตามตารางเปรียบเทียบ
ตัวอย่างที่3 จงแปลง (543)8 ให้เป็นตัวเลขฐานสอง Binary
วิธีทำ 5
=
101
4
=
100
3
=
011
(543)8
=
(101 100 011)2

3.5 การหารเลขฐานสอง เลขฐานแปด เลขฐานสิบหก

หลักการหาร

1. ใช้หลักของการคูณเข้ามาช่วย โดยการเดาผลหารก่อนแล้วนำผลที่ได้มาคูณกับตัวหาร
2. นำผลคูณที่ได้จากข้อ 1 มาลบกับตัวตั้ง โดยใช้หลักการลบของเลขฐานนั้นๆ
3. ทำเช่นนี้ไปเรื่อยๆ จนครบเหมือนการหารเลขฐานสิบ
ตัวอย่างที่ 3.13 (100001) 2 / (1101)2 = (……..)2
วิธีทำ 1101)1000001(101
01101
001101
1101
0000
ตอบ (101) 2
การตรวจสอบความผิดพลาดของข้อมูล (Error Checking)

คอมพิวเตอร์เป็นเครื่องมือที่ใช้ไฟฟ้า ในบางครั้งการเปลี่ยนไปของ
แหล่งพลังงาน หรือสัญญาณทางไฟฟ้าอาจทำให้เกิดการผิดพลาด
ของข้อมูลได้
ในการส่งข้อมูลติดต่อกันระหว่างเครื่องคอมพิวเตอร์ การได้รับการ

รบกวนจากสภาวะของสนามแม่เหล็กไฟฟ้าจากภายนอก อาจทำให้
ข้อมูลผิดพลาดได้
มีหลายวิธีที่ใช้ในการตรวจสอบความผิดพลาดของข้อมูลแต่วิธีที่ง่าย

ที่สุดคือ การตรวจสอบบิตพาริตี้ (Parity bit checking)

เป็นบิตที่เพิ่มเข้าไปกับข้อมูลขนาด 8 บิต (บิตที่ 9) เพื่อที่จะใช้ใน
การตรวจสอบจำนวนตัวเลข ‘1’ ในข้อมูลนั้น
􀂾 มี 2 แบบ พาริตี้บิตคู่ (even parity) และ พาริตี้บิตคี่ (odd parity)
􀂾 พาริตี้บิตคู่
ถ้ามี ‘1’ เป็นเลขคู่ให้เติม ‘0’ ถ้าเลขคี่ให้เติม ‘1’ เข้าที่บิตพาริตี้
􀂾 พาริตี้บิตคี่
ถ้ามี่ ‘1’ เป็นเลขคู่ให้เติม ‘1’ ถ้าเลขคี่ให้เติม ‘0’ เข้าที่พาริตี้บิต

รูปภาพประกอบ