ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
ได้พิมพ์โดยNak Honghannarong ได้เปลี่ยน 9 ปีที่แล้ว
2
Introduction to Computer Organization and Architecture 322 162 Introduction to Computer Organization and Architecture Episode 3 Numbers Representation การแทนข้อมูล ตัวเลข
3
2 หัวข้อเรื่อง ระบบเลขฐาน (Base Numbers) – ฐานสอง, ฐานแปด, ฐานสิบ, ฐานสิบ หก, การแปลงค่า การแทนข้อมูลตัวอักขระ (Character Representation) –BCD, EBCDIC, ASCII, Uni-code การแทนข้อมูลตัวเลข (Number Representation) –Fixed-point, Floating-point
4
3 วัตถุประสงค์การ เรียนรู้ แทนค่าและเปรียบเทียบค่าในการ เข้ารหัสของเลขฐานสอง ฐานสิบ และฐานสิบหกได้ หลักการแทนข้อมูลตัวอักขระไม่ น้อยกว่า 3 แบบ หลักการแทนค่าข้อมูลตัวเลขทั้ง แบบจุดตรึงและแบบจุดลอยตัวได้ เปรียบเทียบค่าตัวเลขที่แทนค่าใน แบบจุดตรึงและแบบจุดลอยตัว ไ ด้
5
4 เอกสารอ้างอิง Hamacher, V. Carl and others Computer Organization 4 th ed. New York : McGraw- Hill, 1996. P.257 - 301. Hayes, John P. Computer Architecture and Organization 3 rd ed. Malaysia:McGraw- Hill, 1998. P.160 - 178, P.223 - 302.
6
5 เอกสารอ้างอิง Stallings, William Computer Organization and Architecture : designing for performance 5 th ed. NewJersey : Prentice- Hall, 2000. P. 269 - 312.
7
6 เอกสารอ้างอิง Schneider, G. Michael and others Computer Organization and Assembly Language Programming for the VAX John Wiley&Sons, 1987. P.15 - 86.
8
7 Numeric Representatio n Fixed-point Numbers Unsigned Binary Sign- Magnitude Complementatio n Packed Decimal
9
8 Unsigned Binary ใช้เลขฐานสองแทนค่าเลข จำนวนเต็มโดยตรง เมื่อ n = จำนวนบิตข้อมูล ที่แทนค่า ค่าที่ แทนได้จะอยู่ในช่วง 0 - (2 n - 1) Bi t N o. 0123 n-2 n-1...
10
9 ตัวอย่างการแทนค่า 0 แทนด้วย 0000 0000 ถ้าใช้ 8 บิตในการ แทนค่า (N = 8) 1 1 18 แทนด้วย 0001 0010 00000000 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 00010010 1818
11
10 ตัวอย่างการแทนค่า 0 แทนด้วย 0000 0000 18 แทนด้วย 0001 0010 ถ้าใช้ 8 บิตในการ แทนค่า (N = 8) 2 7 2 0. 129 แทนด้วย 1000 0001 255 แทนด้วย 1111 1111
12
11 Sign- Magnitude แทนค่าเลขจำนวนเต็มพร้อม เครื่องหมาย ค่าที่แทนค่าได้อยู่ในช่วง - (2 n-1 -1) ถึง + (2 n-1 -1) Bi t N o. 0123 n- 2 Sign Bit... = 0 มีค่า เป็น บวก = 1 มีค่า เป็น ลบ
13
12 ตัวอย่างการแทนค่า + 18 แทนด้วย 0001 0010 ถ้าใช้ 8 บิตในการ แทนค่า (N = 8) 00010010 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 2 4 2 1 1818 +
14
13 ตัวอย่างการแทนค่า - 18 แทนด้วย 1001 0010 ถ้าใช้ 8 บิตในการ แทนค่า (N = 8) 10010010 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 2 4 2 1 1818 -
15
14 ตัวอย่างการแทนค่า + 18 แทนด้วย 0001 0010 -18 แทนด้วย 1001 0010 ถ้าใช้ 8 บิตในการ แทนค่า (N = 8) +65 แทนด้วย 0100 0001 -65 แทนด้วย 1100 0001 +127 แทนด้วย 0111 1111 -127 แทนด้วย 1111 1111
16
15 ปัญหาการแทน ค่า + 0 กับ - 0 + 0 แทนด้วย 0000 0000 - 0 แทนด้วย 1000 0000
17
16 Complement Numbers ที่นิยมนำมาใช้งาน ได้แก่ 1’s Complements 2’s Complements
18
17 1’s Complements เป็นการลบค่าออกจาก 2 n -1 (n = data-bits) n = 4 1’s Complements ของ 0011 คือ 2 n - 1 = 2 4 - 1 = 16 - 1 = 15 1 1 1 1 0 0 1 1 1 1 0 0 จะได้ว่า ค่าเต็ม เป็น 1111 ค่าสูงสุดที่แทนค่าได้ของ เลขสี่หลั ก ค่าตัวเลขบวกที่ต้องการ หาเลขลบ ค่าตัวเลขลบที่ได้โดยวิธี 1’s Complement
19
18 1’s Complements ค่าที่แทนค่าได้อยู่ในช่วง - (2 n-1 -1) ถึง + (2 n-1 -1) โดยการเปลี่ยนเลขจาก 0 --> 1, 1 --> 0 ทุกๆ บิต ดังตัวอย่าง +18 = 0001 0010 -- > -18 = 1110 1101 +65 = 0100 0001 -- > -65 = 1011 1110
20
19 1’s Complements +18 = 0001 0010 2 4 2 1. ต้องการหาค่า 1’s Complement ของ -18 +18 = 0 0 0 1 0 0 1 0 11101101 - 18 +18 = 0001 0010 -- > -18 = 1110 1101
21
20 1’s Complements +65 = 0100 0001 2 6 2 1. ต้องการหาค่า 1’s Complement ของ -65 +65 = 0 1 0 0 0 0 0 1 10111100 - 65 +65 = 0100 0001 -- > -65 = 1011 1110
22
21 ปัญหาการแทน ค่า + 0 กับ - 0 + 0 แทนด้วย 0000 0000 - 0 แทนด้วย 1111 1111
23
22 2’s Complements เป็นการลบค่าออกจาก 2 n (n = data-bits) ( หา 1’s Complements ก่อน แล้วบวกเพิ่มอีก 1) n = 4 2’s Complements ของ 0011 คือ 2 n = 2 4 = 16 10 = 10000 2 1 0 0 0 0 0 0 1 1 1 1 0 1 จะได้ว่า ค่าเต็มเป็น 10000 = 2 4
24
23 2’s Complements ค่าที่แทนค่าได้อยู่ในช่วง - (2 n-1 ) ถึง + (2 n-1 -1) โดยการหา 1’s Complements ก่อน ( เปลี่ยนเลขจาก 0 --> 1, 1 --> 0 ทุกๆ บิต ) แล้วบวก เพิ่มอีก 1 นำไปลบออกจาก 2 n โดยตรง มีวิธีการหาค่า 2 วิธี
25
24 2’s Complements ต้องการหาค่า 1’s Complement ของ -18 +18 = 0 0 0 1 0 0 1 0 11101101 + 1 11101110 - 18 +18 = 0001 0010 --> - 18 = 1110 1110
26
25 การแทนค่าในระบบ 2’s Complements เมื่อเรียงลำดับค่าจากเลข น้อยไปหาเลขมาก
27
26 ถ้าใช้ 4 บิตในการแทนค่า (N = 4)
28
27 Packed Decimal ใช้ 4 บิตในการแทนค่า เลขฐานสิบ 1 หลัก 0000 = 0 0001 = 1 0010 = 2 0011 = 3 0100 = 4 0101 = 5 0110 = 6 0111 = 7 1000 = 8 1001 = 9 ใช้อีก 4 บิตแทนค่า เครื่องหมาย เช่น VAX 1100 แทน บวก 1011 แทน ลบ
29
28 ตัวอย่างการแทนค่า -567 10 แทนด้วย 01 5 01 10 6 01 11 7 10 11 - +95,324 10 แทนด้วย 1001 0101 9595 0011 0010 3232 0100 1100 4+4+
30
29 หัวข้อเรื่อง Floating- point Numbers Half Precision Single Precision Double Precision Quadruple Precision IEEE 754 2008
31
30 Floating-Point Numbers ใช้วิธีให้ตำแหน่งของจุดทศนิยม เคลื่อนที่ไป - มาได้ (Floating of Binary Point) เช่น การแทนค่าเลข ทศนิยมฐานสิบ 6.0247 X 10 23 6.6254 X 10 -27 -1.0341 X 10 2 -7.3000 X 10 -14 เลขที่มีนัยสำคัญ 5 หลัก (Significant Digits)
32
31 Floating-Point Numbers ส่วนตัวเลข 10 23, 10 -27, 10 2, 10 -14 เรียกว่า Scale Factor ซึ่งจะเป็น ตัวกำหนดจุดทศนิยม ลองเขียนใหม่ (Normalized) เป็น 0.60247 X 10 24 0.66254 X 10 -26 -0.10341 X 10 3 -0.73000 X 10 -13 +/- X 1 X 2 X 3 X 4 X 5 X 6 X 7 X 10 +/-Y 1 Y 2
33
32 Floating-Point Numbers การเขียนตัวเลข แบ่ง ออกเป็น 3 ส่วน ส่วนทศนิยม (Fraction or Mantissa) ส่วนเลขชี้กำลัง (Biased Exponent) ส่วนเครื่องหมาย (Signed Bit) SExpo nent Mantissa Fraction
34
33 IEEE 754 The Institute of Electrical and Electronic Engineers กำหนดมาตรฐานการแทน ค่าข้อมูลตัวเลข Floating-Point Numbers ไว้ดังต่อไปนี้ IEEE 754- 1985 IEEE 754- 2008 http://en.wikipedia.or g/wiki/IEEE754
35
34
36
35 IEEE 754 - 2008
37
36
38
37 Single Precision
39
38 Single Precision รูปแบบการ แทนค่า +/- 0.1 bbb... b x 2 +/-E Sign Bit กำหนดให้เป็นบิต แรกนำหน้าสุด บิตแรกสุดของ Significant จะเป็น 1 เสมอ แล้วจึงค่อยตาม ด้วยบิตอื่นๆ Biased Exponent ต้องเป็นค่าใน รูปของ E = E’ - 2 n-1 เสมอ n = 8 bits
40
39 เลขชี้กำลัง ค่าเลขชี้กำลังขนาด 8 บิต มี ค่า E’ = E + 2 8 - 1 ดังนั้น E = E’ - 127 10 โดยที่ E’ มีค่าอยู่ระหว่าง 0 10 ถึง 255 10 จึงได้ว่า E มีค่าระหว่าง -126 10 ถึง 127 10 ซึ่งมีค่าประมาณ 10 +/-38 ส่วน Mantissa 23 bits มี ค่าประมาณ 7 หลัก 10
41
40 ตัวอย่าง 0 10010011 10100010000000000000000 SExpo nent Mantissa Fraction 147 10 + แทนค่าเลขในฐานสิบ มีค่า เท่ากับ 1010001 +0.11010001 X 2 10100 E = E’ - 127 E = 147 - 127 = 20 = 10100
42
41 ตัวอย่าง 0 10010011 101000100000000000000 00 SE’E’M 1010001 +0.11010001 X 2 10100 1 10010011 101000100000000000000 00 1010001 -0.11010001 X 2 10100
43
42 ตัวอย่าง
44
43 ตัวอย่าง 0 01101011 101000100000000000000 00 SExpo nent Mantissa Fraction 107 10 + แทนค่าเลขในฐานสิบ มีค่า เท่ากับ 1010001 +0.11010001 2 X 2 -20 E = E’ - 127 E = 107 - 127 = -20
45
44 ตัวอย่าง 0 00101000 001010000000000000000 00 SExpo nent Mantissa Fraction 40 10 + แทนค่าเลขในฐานสิบ มีค่า เท่ากับ 001010…..0 +0.1001010…..0 2 X 2 -87 E = E’ - 127 E = 40 - 127 = -87
46
45 ตัวอย่าง 0 00101000 001010000000000000000 00 SExpo nent Mantissa Fraction 40 10 + E = E’ - 127 E = 40 - 127 = -87
47
46 Double Precision เลขชี้กำลังขนาด 11 บิต มีค่า E’ = E + 2 11 - 1 ดังนั้น E = E’ - 1023 10 จะได้ค่า E’ มีค่าอยู่ระหว่าง 0 10 ถึง 2,047 10 หรือ E มี ค่าอยู่ระหว่าง -1,022 10 ถึง 1,023 10 ซึ่งมีค่าประมาณ 10 +/-308 ส่วน Mantissa 52 bits มี ค่าประมาณ 16 หลัก 10
48
47 Double Precision E = E’ - 1023 10
49
48 Un-normalized Formats การแปลงให้อยู่ในรูปแบบ ของ Normalized Un-normalized Value ไม่มี 1 นำหน้าชุดของ Binary Point ค่าที่แทนได้ คือ +0.0010110... X 2 9 10001000=1 36 10 136 10 – 127 10 = 9 10
50
49 Normalized Formats การแปลงให้อยู่ในรูปแบบ ของ Normalized Normalized Value ค่าที่ แทนได้คือ +1.0110... X 2 6 10000101=1 33 10 133 10 – 127 10 = 6 10
51
50 Exceptions เป็นเหตุการณ์ที่เกิดจากการ คำนวณแล้ว ส่งผลให้เกิด สัญญาณ Interruption ไปแจ้งต่อ CPU ว่าเกิดสิ่ง ใดขึ้น ?
52
51 Exception Types การนำตัวเลขทศนิยมมา คำนวณ มีโอกาสเกิด Exceptions ได้ 4 แบบ Invalid Operation Division by Zero Overflow Underflow
53
52 Invalid Operation สั่งให้หาค่า Square Root ของเลขลบ
54
53 Division by Zero สั่งให้หารด้วยศูนย์
55
54 Overflow ผลลัพธ์จากการคำนวณมี จำนวนบิตเกินขนาดที่ เครื่องจะแทนค่าได้ เช่น ทำให้ Exponent มากกว่า +127 10 ใน Single Precision ที่ผ่านการ Normalized แล้ว
56
55 Underflow ผลลัพธ์การคำนวณได้ Exponent น้อยกว่า - 126 10 ใน Single Precision ที่ผ่านการ Normalized แล้ว
57
56 ขอบเขตการแทนค่า การแทนค่าแบบ Floating- point นั้น มีขีดความสามารถในการ แทนค่าใน เชิงวิเคราะห์ดังนี้
58
57 ขอบเขตการแทนค่า
59
58 ขอบเขตการแทนค่า
60
59 กรณีตัวอย่าง เครื่อง IBM System 360-370 Series Intel- Pentium II
61
60
62
61
63
Introduction to Computer Organization and Architecture Coming Soon Physical Representation Chapter 2
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.