2 + - กลับหน้าแรก

Download Report

Transcript 2 + - กลับหน้าแรก

บทที่ 1 ระบบจำนวน
วัตถุประสงค์
- มีความเข้าใจในเรื่ องระบบเลขฐานต่างๆ
- สามารถแปลงเลขจากฐานหนึ่งไปสู่อีกฐานหนึ่งได้
- สามารถทาการคานวณพื้นฐานของเลขฐานต่างๆได้
- สามารถแทนเลขฐานสิ บด้วยเลขฐานสองด้วยวิธีต่างๆได้
1.1 เลขฐำน
ในระบบดิจิตอลมีการใช้ตวั เลขอยูห่ ลายฐาน เช่น
- ฐำนสอง มีสัญลักษณ์ที่ใช้งาน 2 ตัวคือ 0, 1
- ฐำนแปด มีสัญลักษณ์ที่ใช้งาน 8 ตัวคือ 0, 1, 2, 3, 4, 5, 6 และ 7
- ฐำนสิ บ มีสัญลักษณ์ที่ใช้งาน 10 ตัวคือ 0, 1, 2, 3, 4, 5, 6, 7, 8 และ 9
- ฐำนสิ บหก มีสัญลักษณ์ที่ใช้งาน 16 ตัวคือ 0,1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C,
D, E และ F
ตัวอย่างระบบจานวนฐานต่างๆ
ฐาน 2
0
1
10
11
100
111
1000
1001
1010
1111
10000
10001
ฐาน 8
0
1
2
3
4
7
10
11
12
17
20
21
ฐาน 10
0
1
2
3
4
7
8
9
10
15
16
17
ฐาน 16
0
1
2
3
4
7
8
9
A
F
10
11
ตำรำงที่ 1.1 เปรี ยบเทียบเลขฐานต่างๆ
1.2 รูปแบบทัว่ ไปของระบบจำนวน
p 1
D   di r i
i  n
D = dp-1*rp-1 + ..+ d2*r2 + d1*r1 + d0*r0 + d-1*r-1 + d-2*r-2 + …. +d-n*r-n
โดย
D คือ ค่ ำของเลขฐำนใดๆ
n. คือจำนวนตัวเลขหลังจุด
p คือจำนวนตัวเลขหน้ ำจุด
di คือตัวเลขลำดับที่ i
r คือฐำนของเลขนั้น
ลำดับทีข่ องตัวเลข di ถ้ ำอยู่หน้ ำจุดจะเริ่มจำก ตำแหน่ งทีต่ ิดกับจุดเป็ นตำแหน่ ง ' 0 '
แล้วเป็ น 1, 2, 3 ถัดมำทำงซ้ ำย ส่ วนตัวเลขหลังจุดจะเริ่มจำก -1, -2, -3 ไปทำงขวำ
ตัวอย่ ำงที1่ .1 จงใช้สมการที่ (1.1) กระจายตัวเลขต่อไปนี้
ก) 125.310
ค) 125.38
ก) 125.310
ข) 10111.0012
 d 10
ง) 1434.5216
2
i
i
i 1
3
 d 16
i 2
i
i
d 2
=
= 1x102 + 2x101 + 5x10 + 3x10-1
ข) 10111.0012 =
d 8
= 1x24 + 0x23 + 1x22 + 1x21 + 1x20 + 1x2-3
ค) 125.38
=
= 1x82 + 2x81 + 5x80 + 3x8-1
ง) 1434.5216 =
= 1x163 + 4x162 + 3x161 + 4x160 + 5x16-1 + 2x16-2
4
i
i
i 3
2
i
i 1
i
ตัวอย่ ำงที่ 1.2 จากตัวอย่างที่ 1.1 จงหาค่า(คิดเป็ นเลขฐานสิ บ)ของ
ตัวเลขทุกข้อ
ตอบ
ก)
ข)
ค)
ง)
123.310
23.12510
85.37510
5172.320310
1.3 กำรเปลีย่ นเลขฐำน
กำรเปลีย่ นเลขฐำนใดๆ กับฐำนสิ บ
ตัวอย่างที่ 1.3 จงแปลง 122.2510 เป็ นเลขฐาน 2,
ฐานแปด และฐานสิ บหก
122.2510 = ?2
122
2)122
2)61
2)30
2)15
2)7
2)3
1
เศษ 0
เศษ 1
เศษ 0
เศษ 1
เศษ 1
เศษ 1
เศษเป็ น 0 แปลง
เสร็จแล ้ว
.25
0.25 x 2 = 0.5 จำนวนเต็ม 0
0.5 x 2 = 1.0 จำนวนเต็ม 1
0.01
1111010 .01
122.2510 = 1111010.012
122.2510 = ?8
122
8)122
8)15
1
เศษ 2
เศษ 7
เศษเป็ น 0 แปลง
เสร็จแล ้ว
.25
0.25 x 8 = 2.0 จำนวนเต็ม 2
172 .2
122.2510 = 172.28
0.2
122.2510 = ?16
122
16)122
7 เศษ 10 (=A)
เศษเป็ น 0 แปลง
เสร็จแล ้ว
.25
0.25 x 16 = 4.0 จำนวนเต็ม 4
7A .4
122.2510 = 7A.416
0.4
•1.3.1 กำรแปลงระหว่ ำงฐำน 2 กับฐำนแปดและฐำนสิ บหก
การแปลงเลขฐานสอง ไปเป็ นฐาน 8 และฐานสิ บหก ใช้หลักการต่อไปนี้
- เลขฐานสอง 3 บิต จะเท่ากับเลขฐานแปด 1 หลัก
- เลขฐานสอง 4 บิต จะเท่ากับเลขฐานสิ บหก 1 หลัก
การแปลงจึงใช้การแบ่งฐานสองครั้งละ 3 บิต สาหรับการแปลงเป็ นฐาน
แปด
และแบ่งครั้งละ 4 บิต สาหรับการแปลงเป็ นฐานสิ บหก
โดยยึดจุดเป็ นหลักแล้วนับไปทางซ้ายและขวาของจุด
ตัวอย่ ำงที่ 1.4 จงแปลง 1111010.012 เป็ นฐานแปดและฐาน
สิ บหก
แปลงเป็ นฐำนแปด
1111010.01
001 111 010 . 010
1
7
2 . 2
ิ หก
แปลงเป็ นฐำนสบ
1111010.01
0111 1010 . 0100
7
A .
4
1.4 กำรบวกลบเลขที่ไม่ ใช่ ฐำนสิ บ
กำรบวกลบเลขฐำนสอง คิดเหมือนฐำนสิ บแต่ ใช้ หลักกำรดังนี้
กำรบวก
0+0=0
0+1=1
1+0=1
1 + 1 = 0 ตัวทดเท่ ำกับ 1
กำรลบ
0-0=0
0 - 1 = 1 ตัวยืมเท่ ำกับ 1
1-0=1
1-1=0
ตัวอย่ ำงที่ 1.5 จงบวกเลขฐานสองต่อไปนี้
ก) 10111110 + 10001101
ข) 101101 + 00101100
ตัวอย่างที่ 1.6 จงลบเลขฐานสองต่อไปนี้
ก) 11100101 – 00101110
ข) 11010010 – 01101101
ตัวอย่างที่ 1.7 จงหาผลบวกของเลขฐานสิ บหก 19B916 + C7E616
1.5 กำรแทนจำนวนลบด้ วยตัวเลขฐำนสอง
การแทนจานวนลบด้วยเลขฐานสองสามารถทาได้ 3 วิธี คือ
วิธีที่ 1 Signed-Magnitude
วิธีที่ 2 One's Complement
วิธีที่ 3 Two's Complement
วิธีที่ 1 Signed - Magnitude
วิธีน้ ีเป็ นวิธีที่ง่ายเพียงเติมบิตเครื่ องหมาย ไว้ทางซ้ายของจานวนโดย
ให้บิตเครื่ องหมายเป็ น '0' ถ้าเป็ นจานวนบวก และบิตเครี่ องหมายเป็ น '1'
เครือ
่ งหมำย บวก
ถ้าเป็ นจานวนลบ
เช่น + 8510 = 0 10101012
1010101
- 8510 = 1 10101012
1x2^0 = 1
1x2^2
= 4
+12710 = 0 11111112
1x2^4
= 16
- 12710 = 1 11111112
1x2^6
= 64
85
+010 = 0 00000002
-010 = 1 00000002
จำนวนคอมพลีเมนท์ (Complement Number)
57 -
57 +
23
77
---
---
34
1 34
ด ังนนสามารถกล่
ั้
าวได้วา
่
77 เป็นค่า Complementของ 23
หรือ ในทางตรงก ันข้าม 23
เป็นค่า Complementของ 77
จานวนคอมพลีเมนท์ของเลขใดๆมี 2 แบบคือ
1. Radix - Complement
2. Diminished Radix - Complement
Radix - Complement
ถ้ากาหนดให้ D เป็ นจานวนเลขฐานใดๆ ที่มีขนาด n หลัก
ค่า Radix - Complement ของ D หาได้จาก
Radix - Complement ของ D = rn - D
(1.1)
= (rn - 1) - D + 1
(1.2)
โดย
r คือ ฐานของเลขจานวน D เช่นถ้าเป็ นฐานสิ บ r = 10 และจะเรี ยกว่า
10's Complement ถ้าเป็ นฐานสอง r = 2 และจะเรี ยกว่า 2's Complement
n คือ จานวนหลักของ D
ตัวอย่ ำงที1่ .8 จงหาค่า Radix - Complement ของ 187910
ในที่น้ ี D = 1879 r = 10 และ n = 4
ดังนัน 10's Complement ของ 1879 จะหาได้จาก
10's Complement ของ 1879 = (104 - 1) - 187910 + 1
= (10000 – 1) – 1879 +1
= (999910 - 184910) + 1
= 815110
สรุป วิธีหา Radix - Complement ของเลขฐานสิ บ ให้ใช้แต่ละหลักไป
ลบ 9 ได้เท่าไรแล้วบวก 1
ตัวอย่ ำงที่ 1.9 จงหา 2's Complement ของ 10102
2’s complement ของ 1010 = (24 - 1) - 10102 + 1
= (100002 – 1) - 10102 + 1
= 11112 – 10102 + 1
= 01012 + 1
= 01102
สรุป วิธีหา Radix - Complement ของเลขฐานสอง ให้กลับบิต
แต่ละหลักเป็ นตรงกันข้าม ได้เท่าไรแล้วบวก 1
Diminished Radix - Complement
Radix - Complement ของ D = rn - D
(1.1)
= (rn - 1) - D + 1
(1.2)
จากสมการ Radix - Complement ที่ (1.2) ถ้าตัด +1 ด้านขวาออกจะได้เป็ น
Diminished Radix - Complement = (rn - 1) - D
(1.3)
Diminished Radix - Complement นี้ถา้ ใช้กบั เลขฐานสิ บจะเรี ยกว่า "9's
Complement"
และถ้าใช้กบั เลขฐานสองจะเรี ยกว่า "1's Complement" ซึ่งมีวิธีจาง่ายๆคือ
ถ้าเป็ นฐานสิ บ เอาแต่ละหลักไปลบออกจาก 9
ถ้าเป็ นฐานสอง กลับบิตทุกบิตเป็ นตรงกันข้าม (จาก 1 เป็ น 0 และจาก 0
เป็ น 1)
กำรเขียนจำนวนเลขฐำนสิ บลบด้ วยวิธี 9’s Complement และ 10's –
Complement ขนำด 4 หลัก
D
9's Complement 10's Complement
2067
7932
7933
100
9899
9900
7
9992
9993
0
9999
10000 ( = 0000 = 0)
กำรเขียนจำนวนลบด้ วยวิธี Two's – Complement ขนำด 8 บิต
+ 17 = 0 0010001 ทา 2’s complement 1 1101111 = -17
+ 127 = 0 1111111
1 0000001 = -127
กำรเขียนจำนวนลบด้ วยวิธี One's -Complement
+ 17 = 0 0010001 ทา 1’s complement 1 1101110 = -17
+ 127 = 0 1111111
1 0000000 = -127
1.6 กำรบวกและลบเลขทูคอมพลีเมนต์
กฎการบวก (Addition Rules)
จำนวนใดๆ ถ ้ำแทนด ้วยเลขฐำนสองขนำด n บิตเมือ
่ บวกกัน
่ กำรบวก
แล ้วมีจำนวนบิต มำกกว่ำ n ให ้ตัดบิตทีเ่ กินทิง้ เชน
เลขขนำด 4 บิต ต่อไปนี้
ก) จงบวก 0011 กับ 0100
+3
+
+4
+7
ข) จงบวก 1110 กับ 1010
-2
+ -6
-8
0 111
0 011
+
0 100
1 110
1 010
1 1 000
บิตนีเ้ กิน 4 บิต ตัดทิง้
โอเวอร์ โฟลว์ (Overflow)
ถ้าการคานวณใดๆ ให้ผลลัพธ์มีค่าเกินกว่าจานวนที่เลขฐานสองจะแทนได้
จะเกิดการผิดพลาดของการคานวณขึ้นเรี ยกว่าเกิด "โอเวอร์โฟลว์" สาเหตุ
เนื่องจาก ใช้จานวนบิตน้อยเกินไป เช่น ถ้าใช้เลขขนาด 4 บิต ซึ่งสามารถ
แทนค่าได้ต้ งั แต่ +7 ถึง -8 ถ้าค่าเกินกว่านี้จะเกิด Overflow เช่น
+3
+
+6
+9
+
0 011
เครีอ
่ งหมำยบวก
0 110
เครีอ
่ งหมำยบวก
1 001
เครีอ
่ งหมำยลบ
1 001 คือ -7 ซงึ่ ไม่ถก
ู ต ้อง
่ เปลีย
วิธแ
ี ก ้ไข คือ ต ้องเพิม
่ จำนวนบิต เชน
่ นเป็ น
เลขฐำนสองขนำด 5 บิต
+
+3
+6
+9
0 0011
+ 0 0110
0 1001
ไม่เกิดโอเวอร์โฟลว์
กฏกำรลบ (Subtraction Rules)
่
ให ้เปลีย
่ นจำกกำรลบเป็ นกำรบวก เชน
A - B = A + (-B)
่
เชน
+4
0 100
0 100
- +3
- 0 011
+ 1 101
+1
ตัดทิง้ 1 0 001
กำรบวกและลบเลขวันคอมพลีเมนต์
ทาเหมีอนกับวิธี การบวกและการลบเลขแบบ Two's - Complement
เพียงแต่ถา้ มีการทดเกินบิต ให้นาบิตนั้นกลับไปรวมอีกครั้ง เช่น
+4
0 100
+6
0 110
+ -7
+ 1 000
+-3
+ 1 100
-3
1 100
+3
1 0 010
1
มีตวั ทดเกิน ให้นากลับไปรวมเป็ นคาตอบ
0 011
1.6 Binary Multiplication
วิธีคูณตำมปกติ
วิธีเลือ่ นและบวก( Shift - and - add)
Binary Division