ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ...

29

Transcript of ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ...

Page 1: ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ านวนจร งม ค ามากกว า 0 0.5 ×2 = 1.0 ให ละเว
Page 2: ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ านวนจร งม ค ามากกว า 0 0.5 ×2 = 1.0 ให ละเว

ตอนท 2 การแทนขอมลในคอมพวเตอร

เคาโครงเนอหาในตอนท 2

1. หนวยของขอมล และระบบเลขเลขฐาน 2

2. การเกบเลขจ านวนเตม

3. การเกบเลขทศนยม

4. การบบอดขอมล

5. การเกบขอมลรปภาพ

2

Page 3: ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ านวนจร งม ค ามากกว า 0 0.5 ×2 = 1.0 ให ละเว

Bit และ Byte

• หนวยพ นฐานของขอมลในระบบคอมพวเตอรเรยกวา bit ซงมาจากการยอค าวา Binary

Digit โดยแทนดวยตวเลขหนงหลก 0 หรอ 1

• bit เปรยบเสมอนสถานะทางไฟฟา ซงม 2 สถานะคอ เปด (แทนดวย 1) และ ปด

(แทนดวย 2)

• ในป 2507 คอมพวเตอร IBM เรมตนการเรยกกลมของ bit จ านวน 8 bits วา Byte

3

Page 4: ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ านวนจร งม ค ามากกว า 0 0.5 ×2 = 1.0 ให ละเว

Words

• Words คอกลมของ Byte ตงแต 1 Bytes ข นไป ทมกจะถกเรยกใชงานพรอมกน

• ขนาดของ Word คอขนาดของขอมลทคอมพวเตอรนน ๆ ประมวลผลไดอยางม

ประสทธภาพ

• ในปจจบนขนาดของ Word มสองแบบทใชกนอยางแพรหลาย คอ 32 bits และ 64 bits

4

Page 5: ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ านวนจร งม ค ามากกว า 0 0.5 ×2 = 1.0 ให ละเว

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

• เลขจ านวนทเราใชอยในปจจบนคอเลขฐานสบ

• ในเลขฐานสบ จะมตวเลขทงหมด 10 ตวคอ 0 1 2 3 4 5 6 7 8 และ 9

• ในระบบเลขฐาน คาของตวเลขจะเพมข นในแตละหลกดวยการยกก าลงฐานนน

• เชน เลข 129 มคาเปน 1×102 + 2×101 + 9×100

• ในบางครง เราจะเขยนฐานก ากบไว เพอใหทราบวาเลขนมาจากฐานใด เชน 12910

5

Page 6: ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ านวนจร งม ค ามากกว า 0 0.5 ×2 = 1.0 ให ละเว

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

• ระบบเลขฐานสองเปนระบบเลขทน ามาใชกบการกระท าของขอมลในระบบคอมพวเตอร

• ในระบบเลขฐานสอง จะมตวเลขอยสองตวคอ 0 และ 1 (เชนเดยวกบ bit)

• คาของเลขฐานสองเมอเทยบกบฐานสบ สามารถท าไดเชนกบเลขฐานสบ

• 1010012

= 1×25 + 0×24 + 1×23 + 0×22 + 0×21 + 1×20 = 4110

6

Page 7: ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ านวนจร งม ค ามากกว า 0 0.5 ×2 = 1.0 ให ละเว

การแปลงเลขฐาน (จ านวนเตม)

• การแปลงเลขฐานสบใหเปนเลขฐานสอง สามารถท าไดโดยการหารเกบเศษดวย 2

• เชน ถาตองการเปลยน 20210ใหเปนเลขฐานสอง สามารถท าไดดงน

202 ÷ 2 = 101 เศษ 0 6 ÷ 2 = 3 เศษ 0

101 ÷ 2 = 50 เศษ 1 3 ÷ 2 = 1 เศษ 1

50 ÷ 2 = 25 เศษ 0 1 ÷ 2 = 0 เศษ 1

25 ÷ 2 = 12 เศษ 1

12 ÷ 2 = 6 เศษ 0

20210

= 110010102

7

Page 8: ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ านวนจร งม ค ามากกว า 0 0.5 ×2 = 1.0 ให ละเว

การแปลงเลขฐาน (ทศนยม)

• ถาตองการเปลยนเลขฐานในสวนทเปนทศนยม สามารถท าไดโดยการคณฐานนนไปเรอย ๆ จนสวนทเปนทศนยมมคา 0 หรอไดจ านวนต าแหนงทศนยมทตองการ โดยดท

สวนทเปนจ านวนเตมของแตละการคณ

• เชน ถาตองการเปลยน 0.32510

ใหเปนเลขฐานสอง

0.375 × 2 = 0.75

0.75 × 2 = 1.5 (ถาสวนเปนจ านวนจรงมคามากกวา 0

0.5 × 2 = 1.0 ใหละเวนในการคณขนถดไป)

0.37510

= 0.0112

8

Page 9: ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ านวนจร งม ค ามากกว า 0 0.5 ×2 = 1.0 ให ละเว

การแปลงเลขฐาน (ตอ)

• ตวเลขทศนยมทเปนทศนยมรจบในเลขฐานหนงอาจจะเปนทศนยมไมรจบในอกเลขฐานหนงได ซงกถอเปนขอจ ากดของคอมพวเตอร

• คอมพวเตอรไมสามารถเกบเลข 0.1 แบบตรง ๆ ได เนองจาก

0.1 × 2 = 0.2 0.6 × 2 = 1.2

0.2 × 2 = 0.4 0.2 × 2 = 0.4

0.4 × 2 = 0.8 0.4 × 2 = 0.8

0.8 × 2 = 1.6 …

สงเกตเหนวารปแบบเรมซ า ดงนน 0.110

= 0.000112

9

Page 10: ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ านวนจร งม ค ามากกว า 0 0.5 ×2 = 1.0 ให ละเว

การเกบเลขจ านวนเตมในคอมพวเตอร

• คอมพวเตอรเกบเลขจ านวนเตมในรปแบบของเลขฐานสอง

• จ านวนหลกของเลขฐานสองทเกบคอขนาดของ Word ของคอมพวเตอรนน ๆ

• ถา Word มขนาด n bits ต าแหนงซายสดจะเปนก าหนดเครองหมายของตวเลข โดยท 0

คอจ านวนเตมบวก และ 1 คอจ านวนเตมลบ n-1 bits ทเหลอคอคาของตวเลขนน

• เชน ถาตองการเกบเลข 2510กตองแปลงเปนเลขฐานสองกอนนนคอ 11001

2ถา

Word มขนาด 8 bits คาทเกบในคอมพวเตอรคอ

0001 1001

ในกรณทเลขฐานสองมจ านวนต าแหนงนอยกวาจ านวน bit ทเกบไดใหเพมเลข 0 ไว

ดานหนา10

Page 11: ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ านวนจร งม ค ามากกว า 0 0.5 ×2 = 1.0 ให ละเว

การบวกเลขฐานสอง

• การบวกเลขฐานสองเหมอนกนการบวกเลขฐานสบ แตเนองจากตวเลขในเลขฐานสองมแคสองตว 1 + 1 จงเทากบ 0 แลวจะตองมการทดไปยงต าแหนงถดไป

• การนบเครองหมายถอเปนเรองส าคญ• ถาเลขทงสองจ านวนมเครองหมายเหมอนกน ผลลพธทไดกจะมเครองหมายเหมอนกน

• ถาเลขทงสองจ านวนมเครองหมายตางกน ผลลพธจะมเครองหมายของเลขทใหญกวา

11

Page 12: ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ านวนจร งม ค ามากกว า 0 0.5 ×2 = 1.0 ให ละเว

ตวอยางการบวกเลขจ านวนเตม

• ตองการบวก 0010 1010 + 0000 1111 ในคอมพวเตอร 8 bits

ทด 1 1 1

0 1 0 1 0 1 0 42

+ 0 0 0 1 1 1 1 +15

0 1 1 1 0 0 1 57

ทงสองจ านวนมเครองหมายเหมอนกน ดงนนค าตอบคอ 0011 1011

12

Page 13: ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ านวนจร งม ค ามากกว า 0 0.5 ×2 = 1.0 ให ละเว

เหตการณ Overflow

• เหตการณ Overflow คอเหตการณทผลลพธของการบวกเลขมจ านวนหลกมากกวาคาท

เกบได (ทดเกนจ านวนหลก)

• เชนถาตองการบวก 75 + 100 ในคอมพวเตอรขนาด 8 Bits

ทด 1 1 1 1

1 0 0 1 0 1 1 75

+ 1 1 0 0 1 0 0 +100

0 1 0 1 1 1 1 47

ค าตอบทไดคอ 0010 1111 หรอ 47 ซงเปนค าตอบทไมถกตอง

13

Page 14: ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ านวนจร งม ค ามากกว า 0 0.5 ×2 = 1.0 ให ละเว

การลบเลขจ านวนเตม

• การลบเลขฐานสองมลกษณะคลายเลขฐานสบคอมการยมคาจะหลกทใหญกวา ในทคาทยมไดจะเปน 2 แทนทจะเปน 10 เนองจากเปนเลขฐานสอง

• การค านวณเครองหมายท าใหการลบซบซอน เนองจากตองค านวณวาเลขตวไหนมขนาดใหญกวา

• เนองจากการลบโดยวธปกตทวไปยงยากส าหรบคอมพวเตอร จงมการคดวธทเปลยนการลบใหกลายเปนการบวกดวยระบบทเรยกวา Complement

• ระบบ Complement มทงสนสองแบบคอ One’s Complement และ Two’s Complement

14

Page 15: ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ านวนจร งม ค ามากกว า 0 0.5 ×2 = 1.0 ให ละเว

ระบบ Complement

• สมมตวาเราตองการลบเลข 67 – 52 ในระบบเลขฐานสบ เราจะใชวธการบวก 167

ดวย -52 ดงนนเราจ าเปนตองแปลง -52 ใหอยในรปของ Complement

• Complement ของตวเลขเลขหนง คอตวเลขทเมอน าไปบวกเลขนนไดคาทสงสดทม

จ านวนหลกเทากน เชน 47 คอ Complement ของ 52 เพราะ 47 + 52 = 99

• ถาหากเราลองเอา 67 มาบวกกบ 47 จะได 114 ซงถาเราน าหลกทเกนมาบวกเพมกบ

เลขทเหลออยจะไดเปน 14 + 1 = 15 ซงคอผลลพธของ 67 – 52

• ดงนนการลบเลขคอการบวกดวย Complement ของเลขนน

• ส าหรบเลขฐานสองแลวการหา Complement สามารถท าไดงายมาก

15

Page 16: ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ านวนจร งม ค ามากกว า 0 0.5 ×2 = 1.0 ให ละเว

ระบบ One’s Complement

• เราจะแปลงเลขตดลบใหอยในรปของ Complement

• Complement ของเลขฐานสองใชวธเดยวกบ Complement ของเลขฐานสบ เชน

Complement ของ 0100 0111 คอ 1011 1000 เนองจากน ามาบวกกนได 1111

1111

• เราจะสงเกตเหนวาการหา Complement ของเลขฐานสองสามารถท าไดงายมากโดยการ

เปลยน 0 เปน 1 และ 1 เปน 0

16

Page 17: ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ านวนจร งม ค ามากกว า 0 0.5 ×2 = 1.0 ให ละเว

การลบเลขดวยระบบ One’s Complement

• ถาตองการลบ 0100 0011 (67) ดวย 0011 0100 (52)

• แปลง 0011 0100 ใหเปน Complement นนคอ 1100 1011

ทด 1 1 1 1

0 1 0 0 0 0 1 1 67

+ 1 1 0 0 1 0 1 1 +(-52)

0 0 0 0 1 1 1 0

น าหลกทเกนกลบเขามาบวก จะได 0000 1110 + 1 = 0000 1111 = 15

17

Page 18: ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ านวนจร งม ค ามากกว า 0 0.5 ×2 = 1.0 ให ละเว

การลบเลขดวยระบบ One’s Complement

• ถาตองการลบ 0011 0100 (52) ดวย 0100 0011 (67)

• แปลง 0100 0011 ใหเปน Complement นนคอ 1011 1100

ทด 1 1 1 1

0 0 1 1 0 1 0 0 52

+ 1 0 1 1 1 1 0 0 +(-67)

1 1 1 1 0 0 0 0 (-15)

1111 0000 คอ Complement ของ 0000 1111 หรอ 15 ดงนนค าตอบคอ -15

18

Page 19: ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ านวนจร งม ค ามากกว า 0 0.5 ×2 = 1.0 ให ละเว

การตรวจ Overflow ในระบบ Complement

• เราสามารถตรวจสอบเหตการณ Overflow ในระบบ Complement ดวยการตรวจสอบวา

เลขทดทต าแหนงสดทายตรงกบเลขทดทเกนมาหรอไม

ทด 0 1

0 1 0 0 1 0 1 1 75

+ 0 1 1 0 0 1 0 0 +100

1 0 1 0 1 1 1 1 (-80)

สงเกตวาเลขทดทเกนมาคอ 0 สวนเลขทดทต าแหนงสดทายคอ 1 ไมตรงกนดงนนการ

บวกนท าใหเกดเหตการณ Overflow

19

Page 20: ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ านวนจร งม ค ามากกว า 0 0.5 ×2 = 1.0 ให ละเว

การเกบเลขทศนยมในคอมพวเตอร

• เลขทศนยมจะถกแบงออกเปนสามสวนในระบบคอมพวเตอรคอ• เครองหมาย

• เลขยกก าลง

• จ านวนหลงจดทศนยม

• เพองายตอการท าความเขาใจเราจะใชระบบ 14 bits ในการเกบเลขทศนยมโดยแบงเปน

• เครองหมาย 1 bit

• เลขยกก าลง 5 bit

• จ านวนหลงจดทศนยม 8 bit

20

Page 21: ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ านวนจร งม ค ามากกว า 0 0.5 ×2 = 1.0 ให ละเว

ตวอยางการเกบเลขทศนยม

• ถาเราตองการเกบเลข 3.125 เราตองแปลงเลขนใหกลายเปนเลขฐานสองกอน

3 = 11.001

• จากนนปรบใหอยในรปของ 0.A × 2B

11.001 = 0.11001 × 22

• เมอน าแตละสวนมารวมกนจะไดคาทเกบคอ

0 00010 11001000

สงเกตวาถาจ านวนเลขหลงจดทศนยมไมครบใหเตม 0 ตอทาย

21

Page 22: ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ านวนจร งม ค ามากกว า 0 0.5 ×2 = 1.0 ให ละเว

กรณเลขยกก าลงตดลบ

• ถาตวเลขมขนาดเลกมากท าใหเมอแปลงมาอยในรปของ 0.A × 2B แลว B เปนจ านวน

ตดลบ

• หนงวธทเราสามารถท าไดคอการให bit ซายสดระบเครองหมาย แตในทางปฏบตแลว

เราจะใชวธการปรบขอบเขตของตวเลข โดยการบวกคากงกลางของขอบเขตนนใหกบเลข

ยกก าลง เนองจากเราใช 5 bits ในการเกบเลขยกก าลง ขอบเขตของตวเลขคอ 0 – 31

ซงคากลางคอ 16

• ดงนนเลข 0.11001 × 22 จะถกเกบเปน 0 10010 11001000 (18 = 10010)

• สวนเลข 0.11001 × 2-2 จะถกเกบเปน 0 01100 11001000 (14 = 01100)

22

Page 23: ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ านวนจร งม ค ามากกว า 0 0.5 ×2 = 1.0 ให ละเว

ขนาดของขอมลในหนวยความจ า

• ขอมลทเปนอกขระจะใชพ นทในการเกบ 8 bits หรอ 1 Byte ซงขนาดของขอมลในหนง

ไฟลคอจ านวนอกขระนนเอง เชน ขอความ I LOVE ICECREAM มทงสน 15 อกขระจงใช

พ นทในการเกบขอมล 15 Bytes (ชองวางถอเปนอกขระ)

• ส าหรบอกขระในภาษาอน อาจจะใชพ นทในการเกบมากกวา 1 Byte เนองจากอาจจะม

ตวอกษรเกน 256 (รวมตวเลขและสญลกษณตาง ๆ)

23

Page 24: ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ านวนจร งม ค ามากกว า 0 0.5 ×2 = 1.0 ให ละเว

การบบอดขอมล

• เราสามารถลดขนาดของขอมลลงไดโดยการปรบเปลยนการแทนคาของตวอกษร

• เราจะสงเกตเหนวาตวอกขระบางตวปรากฏบอยกวาอกขระตวอน ถาเราใชจ านวน bit ท

นอยลงแทนคาตวอกขระทเจอบอยแลวเพมจ านวน bit ใหมากข นกบตวอกษรทแทบจะ

ไมไดเจอ เราสามารถจะลดขนาดของขอมลได

• วธการของ Huffman เปนวธทสรางการแทนคาของตวอกษรทท าใหขนาดของขอมล

นอยลงอยางมากและมประสทธภาพสง

24

Page 25: ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ านวนจร งม ค ามากกว า 0 0.5 ×2 = 1.0 ให ละเว

ตวอยางการบบอดขอมล

• สมมตวาเรามตวอกขระอย 4 ตวคอ A B C และ D โดยแตละตวปรากฏทงหมด 5, 20,

30 และ 45 ครงตามล าดบ

• โดยปกตแลวเราจะใหทกอกขระแทนดวยจ านวน bit ทเทากนเชน A = 00, B = 01, C =

10, D = 11 จะท าใหไฟลนมขนาด 5 × 2 + 20 × 2 + 30 × 2 + 45 × 2 = 200 bits

• แตถาเราแทนคาใหมเปน A = 111, B = 110, C = 10, D = 0 ไฟลเดมจะมขนาดเปน

5 × 3 + 20 × 3 + 30 × 2 + 45 × 1 = 180 bits ซงลดลงจากเดม

25

Page 26: ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ านวนจร งม ค ามากกว า 0 0.5 ×2 = 1.0 ให ละเว

ขอมลรปภาพ

• ขอมลรปภาพจะถกเกบอยในรปแบบของตาราง โดยหนงจดในรปภาพเราจะเรยกวา Pixel

• ส าหรบภาพขาวด า แตละ Pixel สามารถแทนดวยแรกตวเดยวไดโดยจะเปนความสวาง

ของแสง (0 แทนสด า และ คามากทสดแทนสขาว)

• ส าหรบภาพส แตละ Pixel จะประกอบดวยเลขสามตวคอความเขมแสงของสแดง สเขยว

และสฟา

26

Page 27: ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ านวนจร งม ค ามากกว า 0 0.5 ×2 = 1.0 ให ละเว

ความละเอยดของรปภาพ

• ความละเอยดของรปภาพแบงออกเปนสองสวนคอขนาดของรปภาพและความลกของส

• ขนาดของรปภาพวดโดยจ านวน Pixel ในแนวกวาง (Width) และแนวสง (Height)

• ความลกของสหรอ Color Depth วดจากจ านวน bit ทเกบแตละ Pixel เชน ถา Color

Depth เทากบ 8 bit แตละ Pixel จะสามารถเกบคาของสไดกวาง 0 – 255 (มทงหมด

256 เฉดสทแตกตางกน)

• ปจจบน Color Depth ทนยมใชกนคอ True Color (24-bit) ซงจะมทงหมด 16 ลานกวา

เฉดส ในขณะทสายตาคนปกตสามารถแยกแยะไดประมาณ 10 ลานเฉดส

27

Page 28: ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ านวนจร งม ค ามากกว า 0 0.5 ×2 = 1.0 ให ละเว

ค าถามทายบทเรยน

• จงแปลง 204.202 เปนเลขฐานสอง (ทศนยม 5 ต าแหนง)

• จงหา Complement ของ 255910

• จงหา Complement ของ -0011 01112

• จงหาคาของ 0110 00112– 0110 1111

2

• 12.345 จะถกเกบอยางไรโดยใชระบบ 14 bits

• ถาในไฟลมตวอกขระปรากฏอย 3 ตวคอ A, B และ C โดยแตละตวปรากฏทงสน 5, 30,

65 ครงตามล าดบ ถาไฟลนใช 2 bits ในการแทนอกขระหนงตว จงหาวาถาเลอกการ

แทนคาเปน A = 10, B = 0, C = 11 แลวขนาดไฟลจากเพมหรอลดลงกเปอรเซนต

28

Page 29: ตอนที่ - Computer Science CMU...0.75 ×2 = 1.5 (ถ าส วนเป นจ านวนจร งม ค ามากกว า 0 0.5 ×2 = 1.0 ให ละเว

เอกสารอางอง

• The Essentials of Computer Organization and Architecture by Linda Null and Julia

Lobur

29