ไม่มีชื่อเรื่องภาพนิ่ง · ppt file ·...
TRANSCRIPT
บทท่ี 2ระบบตัวเลข
และรหัส
ระบบตัวเลขระบบเลขฐานสองและเลขฐานสบิ
การแปลงเลขฐานระหวา่งฐานสองกับฐานสบิระบบเลขฐานแปด
การแปลงเลขฐานระหวา่งฐานสองกับฐานแปดการแปลงเลขฐานระหวา่งฐานสบิกับแปด
ระบบเลขฐานสบิหกการแปลงเลขฐานระหวา่งฐานสองกับฐานสบิหกการแปลงเลขฐานระหวา่งฐานสบิกับฐานสบิหก
05/05/23
ระบบตัวเลข
เครื่องคอมพวิเตอรม์กีารประมวลผลด้วยระบบดิจติอล ในการติดต่อกับระบบคอมพวิเตอร์จะ
ต้องใชชุ้ดคำาสัง่ต่าง ๆและชุดคำาสัง่ท่ีคอมพวิเตอรรู์จ้กัจะเป็นใน
รูปแบบเลขฐานสอง โครงสรา้งพื้นฐาน ท่ีใชแ้ทนค่าขอ้มูล และคำาสัง่ในหน่วย
ความจำาของระบบคอมพวิเตอร์ คือบติ, ไบต์ สิง่ท่ี
ระบบคอมพวิเตอรเ์ขา้ใจ คือ การตีความ จากค่าของบติต่าง ๆ
ซึง่จะถกูมองเป็นเลขฐานสอง
ระบบเลขฐานสองและเลขฐานสบิ
ในระบบดิจติอลมรีะดับสญัญาณทางไฟฟา้สองระดับ การแทนค่าระดับสญัญาณทางไฟฟา้จะใชเ้ลขฐานสอง
โดยเลขฐานสองเรยีกวา่ บติ ถ้าจะใชร้ะบบตัวเลขแทนค่า สญัญาณดิจติอลหลาย ๆ บติ จะใชเ้ลขฐานสบิหกแทน
เราสามารถเปรยีบเทียบเลขฐานสองและเลขฐานสบิ ได้ โดยนำาค่าแต่ละบติคณูกับค่านำ้าหนักของแต่ละบติ
แล้วนำามารวมกันโดยค่านำ้าหนักของแต่ละบติหาได้จากค่ายกกำาลังของตำาแหน่งบตินัน้
ตัวอยา่ง การแปลงเลขฐานสองเปน็เลขฐานสบิ11012 = (1 x 23) + (1 x 22) + (0 x 21) + (1 x 20)
= 8 + 4 + 0 + 1 = 13
00112 = (1 x 21 ) + (1 x 20 ) = 3
การแปลงเลขฐานสบิเปน็เลขฐานสอง
มี 2 วธีี คือ วธิกีารลบและวธิกีารหาร
วธิกีารลบวธิกีารลบ ทำาได้โดยนำาค่ากำาลังของสองค่าสงูสดุท่ีสามารถลบค่า
เลขฐานสบิได้ไปลบ จากนัน้แทนค่าบตินี้ เป็นค่า “1” และ
เป็นบติสงูสดุ เศษท่ีได้จากการลบให้นำาค่าสองยกกำาลัง
ค่าท่ีตำ่าลงมาไปลบ ถ้าลบให้ได้เป็น “1” และลบต่อไปเรื่อย ๆ
“ถ้าลบไมไ่ด้ให้เป็น 0”และนำาค่าสองยกกำาลังตำ่าลงมาไปลบแทน
ตัวอยา่งตัวอยา่ง การแปลงเลข 4910 เป็นเลขฐานสองทำาได้ดังนี้
49 - 32 25 กำ�ลังสงูสดุท่ีลบจ�ก 49 ได้ 17 - 16 24 กำ�ลังสงูสดุท่ีลบจ�ก 16 ได้ 1 - 1 20 กำ�ลังสงูสดุท่ีลบจ�ก 1 ได้ 0 ลบต่อไมไ่ด้
จากนัน้เขยีนค่า “1” ตำาแหน่งกำาลังของสองท่ี สามารถลบได้
ถ้าลบไมไ่ด้ให้เขยีน “0” จะได้
49 = 1100012
วธิกีารหาร วธิน้ีีจะนำ�ฐ�นสบิม�ห�รด้วยสองไปเรื่อยๆ และนำ�เศษท่ีเหลือม�เขยีนเป็นเลขฐ�นสอง โดยค่�แรกจะ
เป็นบติตำ่� และนำ�ผลห�รท่ีได้ม�ห�รด้วยสองต่อไป
ตัวอยา่งตัวอยา่ง ก�รแปลงเลข 4910 เป็นเลขฐ�นสองทำ�ได้ดังน้ี
49 / 2 = 24 เหลือเศษ 1 (บติตำ่�สดุ )
24 / 2 = 12 เหลือเศษ 0
12 / 2 = 6 เหลือเศษ 0
6 / 2 = 3 เหลือเศษ 0
3 / 2 = 1 เหลือเศษ 1
1 / 2 = 0 เหลือเศษ 1 (บติสงูสดุ)
นำ�เศษท่ีได้ม�เขยีนเป็นเลขฐ�นสองจะได้เป็น 1 1 0 0 0 1
ระบบเลขฐานแปดระบบเลขฐานแปดนี้จะใชส้ญัลักษณ์แทน 8 ตัวคือ 0,1,2,3,4,5,6 และ 7 การแปลงเลขฐานแปดเป็นเลขฐานสบิทำาได้โดยนำาค่าแต่ละหลักคณูกับค่านำ้าหนักของแต่ละหลัก
ตัวอยา่ง ก�รแปลงเลขฐ�นแปดก�รแปลงเลขฐ�นแปดเป็นเลขฐ�นสบิเป็นเลขฐ�นสบิ
3728 = (3 x 82) + (7 x 81 ) + (2 x 80)
= (3 x 64 ) + (7 x 8 ) + (2 x 1)= 25024.68 = (2 x 81) + (4 x 80) + (6 x 8 -1)
= 20.75
ก�รแปลงเลขฐ�นสบิเป็นเลขฐ�น แปด ทำ�โดยนำ�แปด
ไปห�รเศษที่ได้จ�กก�รห�รค่�แรกจะเป็นหลักตำ่�สดุ
266 8/ 33= + เศษ2
33 8/ 4= + เศษ1
4 8/ 0= + เศษ4
ดังนัน้ 26610 =4128
ก�รแปลงเลขฐ�นแปดเป็นเลขฐ�นสองส�ม�รถทำ�ได้โดยเขยีนเลขฐ�นสองท่ีแทนเลขแปดในแต่ละ
หลักจ�กนัน้นำ�ขอ้มูลม�ต่อกัน
Á̈ µÂ� � � � � Á̈ µ °� � � � 0 000 1 001 2 010 3 011 4 100 5 101 6 110 7 111
ถ้าหากต้องการแปลงเลข 4728 เป็นเลขฐานสองสามารถทำาได้ดังน้ี
4 7 2 100 111 010 ดังนัน้เลข 4728 สามารถเขยีนเป็นเลขฐานสองได้เป็น100111010
สว่นการแปลงเลขฐานสองเป็นเลขฐานแปด ทำ�ได้โดยใหจ้ดักลุ่มครัง้ละ 3 บติ เริม่จ�กบติตำ่�สดุ
แล้วเขยีนเป็นเลขฐ�นแปดที่สอดคล้องกัน ถ้�ห�ก ไมส่�ม�รถจดักลุ่มใหเ้ติมศูนยไ์ปที่บติสงูสดุ ตัวอย่�ง
เชน่ ถ้�แปลง 11010110 เป็นเลขฐ�นแปดส�ม�รถทำ�ได้ดังนี้
เติม 0 011 010110
3 2 6
ระบบเลขฐานสบิหก ระบบเลขฐานสบิหกน้ีจะใชส้ญัลักษณ์แทน 16 ตัว
คือ 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E และ Fเลขฐานสบิหกหน่ึงหลักสามารถแทนเลขฐานสองได้ 4 หลัก
การแปลงเลขฐานสบิหกเปน็เลขฐานสอง สามารถทำาได้โดยแทนเลขฐานสบิหกแต่ละหลักด้วยเลขฐานสอง4 บติ และนำามาเรยีงต่อกัน 9 F2H = 9 F 2
= 1001 1111 0010
= 100111110010 สว่นการแปลงเลขฐานสองเป็นเลขฐาน
แปดทำาได้โดยให้จดักลุ่มครัง้ละ 4 บติ และ แทนเลขฐานสองแต่ละกลุ่มด้วยเลขฐานสบิหก
11010101 = 1101 0101= D 5= D5H
การแปลงเลขฐานสบิหกเปน็เลขฐานสบิ ส�ม�รถทำ�ได้โดยนำ้�หนักของเลขฐ�นสบิหก
แต่ละหลักจะเป็น160 ,161,162
…… ไปคณูกับค่� แต่ละหลัก แล้วนำ�ม�บวกกัน
ตัวอยา่ง แปลงเลขฐานสบิหกเป็นเลขฐานสบิ
วธิทีำา นำ�ค่�นำ้�หนักของแต่ละหลักม�คณูแล้วนำ�ม�บวกกันA0916 = 10 x 162 + 0 x 161 + 9 x 160
= 2560 + 9= 2569
การแปลงเลขฐานสบิเป็นเลขฐานสบิหก
ทำาได้โดยการหารด้วย 16 ไปเรื่อยๆ
ตัวอย�่ง แปลงเลขฐ�นสบิเป็นเลขฐ�นสบิหก
วธิทีำา418 / 16 = 26 เศษ 2 26 / 16 = 1 เศษ 10 1 / 16 = 0 เศษ 1
41810 = 1A216
05/05/23
ระบบเลข BCD
Binary-Coded-Decimal System
ระบบเลข BCD คอมพวิเตอรรุ์น่แรก ๆ เป็นคอมพวิเตอรท่ี์ประมวลผลแบบ 4
บติ ต่อมามกีารพฒันาเป็นคอมพวิเตอรแ์บบ 8 บติ เพราะวา่เวริด์
ขอ้มูลขนาด 8 บติ สามารถแทนเลข BCD ได้สองหลัก ตัวเลข BCD บางครัง้เรยีกวา่ รหัส 8421เป็นระบบเลขท่ีใชเ้ลขฐานสองจำานวนสีบ่ติแทนเลขฐานสบิหนึ่ง
หลัก
การแปลงระหวา่งเลขฐานสบิ กับเลข BCD
สามารถทำาได้โดยการจดักลุ่ม ของเลขฐานสองจำานวนสีบ่ติ
เชน่ 8 แทนเลขฐานสอง จำานวนสีบ่ติ คือ1000
การเปรยีบเทียบระหวา่งเลขฐาน สบิกับเลข BCDเลขฐานสิบ เลขBCD
0 00001 00012 00103 00114 01005 01016 01107 01118 10009 1001
การแปลงเลขฐานสบิ เปน็เลข BCD
ตัวอยา่ง จงแปลงเลข 496 10 เป็น เลข BCD
4 9 6 0100 1001 0110
จะได้ 49610 = 0100 1001 0110BCD
แทนค่าด้วยเลขฐานสอง
การแปลงเลข BCD เปน็เลขฐานสบิ
ตัวอยา่ง จงแปลงเลข 0111 01011000BCD เป็นเลขฐ�นสบิ
0111 01011000
7 5 8
จะได้ว�่ 0111 01011000BCD = 75810
ตัวอยา่งท่ีไมส่ามารถแปลงค่าได้ตัวอยา่ง จงแปลงเลข 0110
0100 1011BCD เป็นเลขฐานสบิ
0110 01001011
6 4 *
ไมส่ามารถแปลงได้ เพราะเลขฐานสองสีบ่ติ ท่ีเป็นเลข BCD ต้องมค่ีาไม่
เกิน 9
การบวกเลข BCD บวกเลข BCD สองจำานวนเหมอืนกับการบวก
เลขฐานสองท่ีได้ศึกษามา ถ้าหากผลบวกจำานวน 4 บติ มค่ีาเท่ากับหรอื
น้อยกวา่ 9 ตัวเลขนัน้ คือ เลข BCD ถ้าหากผลบวกจำานวน 4 บติ มค่ีามากกวา่ 9
หรอื มตัีวทดจากบติท่ี 4 ให้นำาค่า 6 คือ 01
10 เขา้ไปบวกด้วยผลลัพธท่ี์ได้จะเป็นเลขBCD
ตัวอยา่งการบวกเลขBCD
จงบวกเลข BCD 10000110 + 00010011 = ?
1000 0110 86
+ 0001 0011 + 13 1001 1001
99
การบวกเลข BCD ในกรณีท่ี มค่ีามากกวา่ 9
จงบวกเลข BCD 1001 + 0100 = ?
1001 9 0100+ 4+ 1101 13 0110 ไมใ่ชเ่ลข BCD เพราะ
มากกวา่9 0001 0011 บวกด้วย6 1 3
0011
การบวกเลข BCD ในกรณีมตัีว ทดจากบติท่ี4
จงบวกเลข BCD 1001 + 1001 = ?
1001 9
1001 99 1 0010 มตัีวทดจากบติท่ี4 18 0110 บวกด้วย6 0001 1000 1 8
0011
การบวกเลข BCD ในกรณีท้ัง สองกลุ่มมากกวา่9
จงบวกเลข BCD 01100111 +
01010011 = ? 0110 0111
67 0101 0011 +
53 1011 1010 ท้ังสองกลุ่ม
มากกวา่ 9 120 0110 0110
0001 0010 0000 1 2 0
รหัสคอมพวิเตอร์คอมพวิเตอรเ์ป็นอุปกรณ์อิเล็กทรอนิกสท่ี์รูจ้กัระดับ
สญัญ�ณไฟฟ�้ว�่เป็น “ลอจกิ 0 “หรอืลอจกิ 1” เท่�นัน้ ก�รที่จะให้
คอมพวิเตอรรู์จ้กัตัวเลข หรอื ตัวอักขระต่�งๆจะต้องมกี�รเข�้รหสั ตัวอักขระเหล่�นัน้ให้
เป็นขอ้มูลท่ีคอมพวิเตอรรู์จ้กัเสยีก่อนอย่�งเชน่ถ้�จะให้ “คอมพวิเตอรเ์ข้�ใจว�่ตัวอักขระตัวหนึ่งเป็นตัว A ” จะต้อง
ใหข้อ้มูลท่ีมค่ี�ดิจติอลเป็น 1000001 ก�รทำ� แบบน้ีเรยีกว�่
ก�รเข�้รหสั รหสัคอมพวิเตอรม์ไีด้หล�ยรหสั ท่ีนิยมใชกั้นคือรหสั
ASCII ยอ่ม�จ�กAmerican Standard Code for Information Interchange โดยใชร้หสัเลขฐ�นสองจำ�นวน 7 บติ
แทนตัวอักขระ 128 ตัว โดยรวมรหสัควบคมุต่�ง ๆ ด้วย รหสัแอสก่ีน้ีในคอมพวิเตอรจ์ะใชใ้นก�รรบัขอ้มูลจ�ก
แป้นพมิพ์ แสดงตัวอักษรท�งจอภ�พ และสง่ขอ้มูลออกท�งเครื่องพมิพ ์
รหัส ASCII รหัสแอสก่ีมจีำานวน 128 ตัว
จะเห็นวา่จะใชเ้ลขฐานสองจำานวน 8 บติ แทนแต่บติท่ี 8 “จะมค่ีาเป็น 0”
เพราะรหัสแอสก่ีจะใชข้อ้มูลเพยีง 7บติ
การใชร้หัสแอสก่ีในการสื่อสาร ขอ้มูลระหวา่งคอมพวิเตอร์ จะมบีติ
พเิศษเพิม่อีกหน่ึงบติ เรยีกวา่ บติพารต้ีิ ( Parity ) โดยบติน้ีจะเป็นบติตรวจ
สอบความผิดพลาดของขอ้มูล
การสื่อสารขอ้มูลด้วย รหัส ASCIIแปลงขอ้มูล
ขน�นเป็น
อนุกรม
แปลงขอ้มูลอนุกรม
เป็นขน�น
สร�้งบติพ�รต้ีิ
ตรวจสอบบติพ�รต้ีิ
รหัสเกรย์ (GRAY CODE)
รหัสเกรยเ์ป็นรหัสคอมพวิเตอรอ์ีกชนิด หนึ่ง แต่เป็นรหัส
ท่ีไมม่ค่ีานำ้าหนัก ไมเ่หมาะสมสำาหรบัทำาการ คำานวณ แต่จะมปีระโยชน์ในระบบท่ีต้องใช้
อุปกรณ์อินพุตเอาต์พุต และการเปลี่ยนแปลงระหวา่งระบบเลขอนาลอกกับระบบเลขดิจติอล
บางประเภท การเปลี่ยนแปลงของรหัสเกรยแ์ต่ละค่า
จะต่างจากจำานวนก่อนหน้าอยู่ 1 บติเสมอทำาให้เกิดความผิดพลาดในการสง่รหัสได้ยากเมื่อเทียบกับระบบเลขฐานสอง
ตารางเปรยีบเทียบรหัสเกรยกั์บเลขฐานสบิและเลขฐานสอง
เลขฐ�นสิบ
เลขฐ�นสอง
รหัสเกรย์
เลขฐ�นสิบ
เลขฐ�นสอง
รหัสเกรย์
0 0000 0000 8 1000 11001 0001 0001 9 1001 11012 0010 0011 10 1010 11113 0011 0010 11 1011 11104 0100 0110 12 1100 10105 0101 0111 13 1101 10116 0110 0101 14 1110 10017 0111 0100 15 1111 1000
รหัสเกิน 3 ( Excess-3 Code ) รหัสเกิน 3 เป็นรหัสท่ีไมม่นีำ้าหนัก รหัสน้ี
ประกอบด้วยกลุ่มเลขฐานสองจำานวน 4 บติ โดย เกิดจากการนำาเลข BCD มาบวกด้วย 3
Á̈ µ ·� � � � Á̈� BCD Excess-3 0 0000 0011 1 0001 0100 2 0010 0101 3 0011 0110 4 0100 0111 5 0101 1000 6 0110 1001 7 0111 1010 8 1000 1011 9 1001 1100
ระบบตัวเลขแบบคิดเครื่องหมาย บติสงูสดุ คือ บติเครื่องหม�ย ถ้�บติสงูสดุเป็น 0 แปลว�่เป็น
บวก ถ้�บติสงูสดุเป็น 1 แปลว�่เป็น
ลบ
จำานวนเลขท่ีมเีครื่องหมาย เครื่องหม�ยขน�ด ( Signed-
Magnitude,SM )บติแรกเป็นบติเครื่องหมาย ตัวเลขฐานสองท่ีตามมาจะเป็นค่าขนาด
(Magnitude ) หรอื ค่าสมับูรณ์(Absolute)
ถ้าบติเครื่องหมายเป็น 0 แทนตัวเลขบวก ถ้าบติเครื่องหมายเป็น 1 แทนตัวเลขลบ
ระบบเลข One’ Complement
บติแรกเป็นบติเครื่องหมาย ถ้าบติเครื่องหมายเป็น 0 คือ เป็นเลข
บวกให้เขยีนค่าตัวเลขตามหลัง
ถ้าบติเครื่องหมายเป็น 1 คือ เป็นเลขลบให้เขยีนค่าตามหลังเป็นค่าตรงขา้ม
ตัวอย�่งก�รแปลงเลข SM และ One’ Complement จงแปลง - 28 เป็นแบบ SM และ One’ Complement
แบบ SM- 28 = 111002
เติมบติเครื่องหมายเป็น 1 ดังนัน้ - 28 = 1111002
แบบ One’ Complement111002 กลับค่าเป็น
000112
ดังนัน้ - 28 = 1000112
จงแปลง 85 เป็นแบบ SM และOne’ Complemeny
แบบ SM 85 =
10101012
เติมบติเครื่องหมายเป็น 0 ดังนัน้ 85 =
010101012
แบบ One’ Complement85 =
010101012
ดังนัน้ 85 = 010101012
จงแปลง - 125. เป็นแบบ SM และ One’ Complement
แบบ SM 125 แปลงเป็นเลขฐ�นสองได้ 101. 2
ดังนัน้ - 125. = 1101. 2
แบบ One’ Complement1.012 กลับค่�เป็น 010. 2
ดังนัน้ - 125. = 1010. 2
ระบบเลข Two’ Complement
บติแรกเป็นบติเครื่องหมายถ้าเป็นบวกไมต้่องกลับค่าบติขนาดถ้าเป็นลบกลับค่าบติท่ีตามมาท้ังหมด
แล้วบวกด้วย1
ตัวอยา่งการแปลงเลขแบบTwo’ Complement จงแปลง - 28 เป็นแบบ Two’ Complement
จ�กตัวอย�่งที่แล้วของ One’ Complement
28 = 111002
กลับค่�ของ 111002 ได้000112
>> นำ�ม�บวกด้วย 1 00011 91
>> 00100
ดังนัน้ - 28 = 1001002
จงแปลง 85 เป็นแบบ Two’ Complement เน่ืองจาก 85 = 10101012
ซึง่มค่ีาเป็นบวก ดังนัน้ จงึไมต้่องเปลี่ยน เพยีงใสบ่ติเครื่องหมายท่ีเป็นบวก คือ0
ดังนัน้ 85 = 010101012
จงแปลง - 125 เป็นแบบ Two’ Complement1.25 = 1.012
เป็นลบ กลับค่� 1.012 ได้ 0.102
บวกด้วย 10.10
+ 10.11
ดังนัน้ -1.25 = 10.112
คณิตศาสตรข์องเลข Two’ Complement
ระบบเลข Two’ Complement ส�ม�รถใชแ้ทนเลขลบได้ ในก�ร ลบเลขคอมพวิเตอร์
จะใชว้ธิกี�รบวกแทนวธิกี�รลบ แต่จะเป็นก�รบวกด้วยเลขลบแทน โดยเลขลบนัน้จะใชเ้ลขฐ�นสอง
แบบ Two’ Complement เชน่ ก�รลบค่� 14 ออกจ�ก 20 ส�ม�รถมองเป็น -14 20+ + ( )
+14 = 0000 1110 (0EH) + -20 = 0001 0100 กลับค่�เป็น 1110 1011 + 1 +1110 1100 (ECH)
-6 1111 1010 = FAH
จะเหน็ว�่ผลจ�กก�รบวกเป็น FAH โดยบติสงูสดุเป็น 1 หม�ยคว�มว�่เป็น เลขลบ
ดังนัน้เร�ต้องแปลงค่� FAH น้ีเป็นเลขฐ�นสบิ จะได้ 1111 1010 กลับค่�เป็น 0000 0101
9 1 = 0000 0110 -6=
แต่ห�กก�รบวกนี้เป็นก�รบวกแบบไมคิ่ดเครื่องหม�ยผลลัพธ์FAH จะมค่ี�เป็น250
TO BE CONTINUE