370 likes | 733 Views
Chapter 02 Introduction to Data Representation การแทนข้อมูลในคอมพิวเตอร์. ผู้สอน อ. ยืนยง กันทะเนตร สาขาวิชาเทคโนโลยีคอมพิวเตอร์เคลื่อนที่ www.ict.up.ac.th/yeunyong. Introduction Binary number system Number Representation Text Representation Graphic Representation. Overview.
E N D
Chapter 02Introduction to Data Representationการแทนข้อมูลในคอมพิวเตอร์ ผู้สอน อ.ยืนยง กันทะเนตร สาขาวิชาเทคโนโลยีคอมพิวเตอร์เคลื่อนที่ www.ict.up.ac.th/yeunyong
Introduction • Binary number system • Number Representation • Text Representation • Graphic Representation Overview
เพื่อให้นิสิตเข้าใจหลักการของเลขฐานสองเบื้องต้นเพื่อให้นิสิตเข้าใจหลักการของเลขฐานสองเบื้องต้น • เพื่อให้นิสิตเข้าใจวิธีการแทนค่าข้อมูลรูปแบบต่างๆ ในคอมพิวเตอร์ Objective
การที่เราจะสั่งให้คอมพิวเตอร์ทำงานการที่เราจะสั่งให้คอมพิวเตอร์ทำงาน • ต้องรู้ว่าคอมพิวเตอร์ทำงานอย่างไร??? • การที่เราจะรู้ว่าคอมพิวเตอร์ทำงานอย่างไร ??? • ต้องรู้ว่าข้อมูลต่างๆ เก็บในคอมพิวเตอร์ได้อย่างไร ??? • เพลง, หนัง, รูป, ไฟล์เอกสาร ฯลฯ เก็บอย่างไร ??? • คอมพิวเตอร์รู้จัก และทำงานกับข้อมูลเหล่านี้ได้อย่างไร ??? Introduction
คอมพิวเตอร์เป็นอุปกรณ์ไฟฟ้าคอมพิวเตอร์เป็นอุปกรณ์ไฟฟ้า • ข้อมูลที่รู้จักคือสัญญาณแบบดิจิตอล • คล้ายทีวี, วิทยุที่รู้จักสัญญาณแบบอนาล็อก • ใช้การแทนค่ารูปแบบสัญญาณเพื่อแทนข้อมูลชนิดต่างๆ ในโลกความจริง Introduction [cont.] Image(s): FreeDigitalPhotos.net
Introduction [cont.] เครดิตรูปจาก http://computertru.blogspot.com/2010/01/blog-post_06.html
สัญญาณ(ข้อมูล)ดิจิตอล – สัญญาณไฟฟ้า มี 2 สถานะ • on/off , เปิด/ปิด , มีสัญญาณ/ไม่มีสัญญาณ • แทนได้ด้วยเลข 1 และเลข 0 • แต่ละตัวจะเรียกว่า บิต (Bit) – Binary Digit • สัญญาณเหล่านี้จะแทนข้อมูลต่างๆ ในคอมพิวเตอร์อีกที Introduction [cont.]
ในชีวิตประจำวัน เราใช้ ระบบเลขฐาน 10 (Decimal Number System) ซึ่งมีตัวเลขที่ใช้อยู่ 10 ตัว คือ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 • 8310(83 ฐาน 10) มีความหมายคือ (ผลรวมของค่าคงที่ประจำหลัก คูณกับ ฐานยกกำลังด้วยค่าน้ำหนักของหลักนั้นๆ(เริ่มที่ 0 ในหลักหน่วย)) 83 = (8 x 101) + (3 x 100) Binary number system
ระบบเลขฐานสอง (Binary Number System) • ใช้เลข 0 และ 1 ในการแทนค่าข้อมูลเท่านั้น • 11102(1110 ฐาน 2) มีความหมายคือ (ผลรวมของค่าคงที่ประจำหลัก คูณกับ ฐานยกกำลังด้วยค่าน้ำหนักของหลักนั้นๆ (เริ่มที่ 0 ในหลักหน่วย)) 11102 = (1x23) + (1x22) + (1x21) + (0x20) = 14 Binary number system [cont.]
10102 = (1x23) + (0x22) + (1x21) + (0x20) = 8 0.112= (1x2-1) + (1x2-2) = 0.75 Binary number system [cont.]
จงแปลงเลขฐานสองต่อไปนี้ให้เป็นเลขฐานสิบจงแปลงเลขฐานสองต่อไปนี้ให้เป็นเลขฐานสิบ • 10012 • 11112 • 100012 • 110102 • 1101002 • 1001102 Binary number system [cont.]
คอมพิวเตอร์รู้จักแต่สัญญาณดิจิตอล ซึ่งเขียนแทนได้ด้วยเลขฐานสอง • ข้อมูลทุกอย่างที่เก็บในคอมพิวเตอร์ เกิดจาก “กลุ่มของสัญญาณดิจิตอล” ซึ่งใช้แทนความหมายของข้อมูลชนิดต่างๆ อีกที ซึ่งเรียกว่า Data Representation • ในการแทนข้อมูลชนิดใดๆ ก็ตาม ต้องมีการกำหนด ขนาดหรือจำนวนบิตที่จะใช้แทนข้อมูล ด้วยเสมอ ซึ่งหน่วยข้อมูลคอมพิวเตอร์ มีหน่วยดังนี้ ความรู้เพิ่มเติม
ความรู้เพิ่มเติม [ต่อ] http://egret.net/kb__mb.htm http://users.nlamerica.com/kevin/Bitsbytes.htm
การแทนข้อมูลในรูปแบบตัวเลข (ปกติเป็นเลขฐานสิบ) • ตัวเลขมีความหมาย สามารถนำตัวเลข 2 ตัวมาคำนวณ(แบบเลขฐานสอง) ได้ โดยใช้การออกแบบวงจรใน CPU • ใช้พื้นฐานเดียวกับการเขียนเลขฐานสองแทนเลขฐานสิบ • ปัญหาที่ต้องอภิปราย • เลขทศนิยมฐานสองแทนเลขทศนิยมฐานสิบได้ยาก ??? • เลขที่มีค่าเป็นลบ จะแทนอย่างไร ??? • จำนวนบิตที่ใช้ ส่งผลกระทบอย่างไร ??? Number Representation
ในการแทนตัวเลข โดยมาตรฐานกำหนดเป็น 2 แบบหลัก • การแทนเลขจำนวนเต็ม • การแทนเลขทศนิยม • แต่ละแบบยังมีประเภทย่อยๆ อีกหลายประเภท • สถาปัตยกรรมของเครื่องคอมพิวเตอร์ที่แตกต่างกัน • เทคโนโลยีอดีต – ปัจจุบัน Number Representation [cont.]
ใช้พื้นฐานเดียวกับการเขียนเลขฐานสองแทนเลขฐานสิบใช้พื้นฐานเดียวกับการเขียนเลขฐานสองแทนเลขฐานสิบ • มีทั้งแบบ signed (บวก,ลบ) และ unsigned (บวกเท่านั้น) • การเก็บแบบ signed ใช้ได้หลายวิธี เช่น • Sign-Magnitude เพิ่ม 1 บิตแทนเครื่องหมายบวก/ลบ • 1’s Complements , 2’s Complements มี 1 บิตแทนเครื่องหมายคล้าย sign-magnitude แต่ข้อมูลส่วนที่เหลือใช้หลักการทางคณิตศาสตร์ในการเก็บข้อมูล เพื่อให้มีประสิทธิภาพมากขึ้น การแทนเลขจำนวนเต็ม
จำนวนบิตที่ใช้ - 1 ไบต์, 2 ไบต์ , 4 ไบต์ , 8 ไบต์ • จำนวนบิตที่ใช้ยิ่งมาก ->แทนตัวเลขที่มีค่ามากๆ ได้ • เช่น ถ้าใช้พื้นที่ 1 ไบต์ • แบบ unsigned -> 0 ถึง 255 • แบบ signed (เครื่องหมาย 1 บิต) -> -128 ถึง 127 • ถ้าใช้พื้นที่ 2ไบต์ • แบบ unsigned -> 0 ถึง 65,535 • แบบ signed (เครื่องหมาย 1 บิต) ->-32,768 ถึง 32,767 การแทนเลขจำนวนเต็ม [ต่อ]
ใช้การเก็บแบบ exponential หรือ Floating point ซึ่งอยู่ในรูปของ +/-significandx 10exponent • เช่น +1.637x 109 => 1,637,000,000 • เช่น -3.5416x 10-5=> -0.000035416 • แต่เป็น exponential ในรูปของเลขฐานสอง • เช่น +1.101x 25 => 110100 • เช่น -0.11x 2-3=> -0.00011 • ข้อมูลจะแบ่งเก็บ 3 ส่วน คือ sign, significand, exponent การแทนเลขจำนวนจริง
จำนวนบิตที่ใช้ - 2 ไบต์, 4 ไบต์ , 8 ไบต์ , 10 ไบต์ , 16 ไบต์ • ยิ่งใช้บิตมาก ->แทนตัวเลขที่มีค่ามากๆ หรือเล็กมากๆ ได้ การแทนเลขจำนวนจริง [ต่อ]
การแทนข้อมูลในรูปแบบตัวอักษรการแทนข้อมูลในรูปแบบตัวอักษร • รวมถึงสัญลักษณ์ต่างๆ , ตัวเลขที่ไม่นำมาคำนวณ • หลักการคล้ายกับรหัสมอส • ใช้ตัวเลข (ฐานสอง) แทนตัวอักษร • มี 2 ประเภทที่นิยม • ASCII • Unicode Text Representation
พัฒนาโดย ANSI (American National Standards Institute) สำหรับ PC • ใช้พื้นที่ 8 Bits ในการเก็บข้อมูล 1 ตัวอักษร • เก็บตัวอักษรที่แตกต่างกันได้ 27= 128 สัญลัษณ์ • 1 บิตเอาไว้เป็นตัวเช็คความถูกต้องของข้อมูล • เก็บได้แต่ตัวอักษรภาษาอังกฤษ, ตัวเลข, สัญลักษณ์พิเศษต่างๆ ASCII (American Standard Code for Information Interchange)
พัฒนามาเพื่อให้รองรับหลายภาษาทั่วโลก รวมถึงภาษาไทย • มีใน WindowsXPเป็นครั้งแรก(สำหรับผู้ใช้ทั่วไป) • มีหลายเวอร์ชัน สำหรับการใช้งานที่ต่างกัน เช่น UTF-8, UTF-16, UTF-32 ฯลฯ • มีขนาดได้สูงถึง 32 Bits ต่อ 1 ตัวอักษร • แทนสัญลักษณ์ได้สูงถึง 232 สี่พันล้านสัญลักษณ์ • รวมรหัส ASCII ไว้ในตัว ทำให้แทน ASCII ได้ทันที Unicode
อภิปราย : คอมพิวเตอร์เก็บรูปภาพได้อย่างไร ??? • หลักการก็เช่นเดียวกับกล้องดิจิตอล • รูปที่เก็บเกิดจากจุดเล็กๆ (pixels) หลายจุดรวมกัน • จุดแต่ละจุดจะมีค่า(สี) เพียงสีเดียว • คอมพิวเตอร์เก็บรหัสแทนสีในแต่ละจุด • มีหลายชนิด Graphic Representation
Color image: 24 bits (RGB) – 16 ล้านสี Three-dimention color space
รูปมีจำนวน pixel มาก ยิ่งมีความละเอียดสูง • ยิ่งมีจำนวนสีมาก, มีระดับของแต่ละสีเยอะ ยิ่งมีความสมจริง • แต่ก็แลกมาด้วยปริมาณข้อมูลที่มหาศาล • รูปขนาด 100 * 100 pixel สีขาวดำ • 1 pixel = 1 bit , ใช้พื้นที่ 10000 bit = 1,250 bytes • รูปขนาด 800 * 600 pixel ที่ความละเอียด 24 bit • 1 pixel = 3 bytes, ใช้พื้นที่ 1,440,000 Bytes ปัญหาด้านความจุ
ในการเก็บจริงจึงต้องมี “การบีบอัดข้อมูล” • เพื่อให้ใช้พื้นที่น้อยลง • มีหลายวิธี ขึ้นอยู่กับ จำนวนสี, คุณภาพรูปภาพ, ความซับซ้อนของอัลกอริทึม, ฯลฯ • มาตรฐาน เช่น jpeg, pcx, bmp, png, tiff, gif เป็นต้น ปัญหาด้านความจุ [ต่อ]
a very simple form of data compression • มักใช้กับรูปภาพขาวดำหรือภาพที่มีสีน้อยๆ • หลักการ • เขียนชุดข้อมูลที่ซ้ำๆ กันทีละบรรทัด (pixel ในแนวนอน) • เขียนจำนวน pixel ที่มีสีขาวและจำนวน pixel ที่มีสีดำสลับกันไปเรื่อยๆ • ถ้าข้อมูลเริ่มด้วยสีดำ -> เริ่มต้นด้วยเลข 0 • ถ้ามีมากกว่า 2 สี เขียน จำนวน, รหัสสี สลับกันไปเรื่อยๆ Run-length encoding (RLE)
0, 6 0, 1, 4, 1 0, 1, 4, 1 0, 6 2, 2, 2 1, 4, 1 0, 4, 2 0, 6 0, 4, 1, 1 0, 4, 1, 1 0, 5, 1 0, 4, 2 1, 4, 1 0, 6 0, 1, 1, 2, 1, 1 0, 6 1, 1, 2, 1, 1 2, 2, 2 3, 1, 2 3, 2, 1 0, 6 0, 6 3, 2, 1 3, 1, 2 รูปอะไร ???
สตอล์ลิงค์, วิลเลียม. สถาปัตยกรรมคอมพิวเตอร์.—กรุงเทพฯ : เพียร์สัน เอ็ดดูเคชั่น อินโดไชน่า, 2546 • http://csunplugged.org/binary-numbers • http://csunplugged.org/image-representation • http://egret.net/kb__mb.htm • http://en.wikipedia.org/wiki/Kibibyte • http://en.wikipedia.org/wiki/Floating_point • http://users.nlamerica.com/kevin/Bitsbytes.htm Reference