บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)
บทที่ 3: การบวก ลบ คูณ หาร เลขฐานสอง
description
Transcript of บทที่ 3: การบวก ลบ คูณ หาร เลขฐานสอง
บทท�� 3: การบวก ลบ คู�ณ หาร เลขฐานสองเน��อหาสาระ1.การบวกเลขฐานสอง
การบวกเลขฐานสอง (Binary addition) จะคล�ายก�บการบวกเลขฐานส�บ โดยเร��มจากการบวกเลขสองตั�วที่��ม�ความส�าค�ญตั��าส�ดที่��อย !ที่างซ้�ายม#อก!อน ถ้�าหากผลล�พธ์)ที่��ได�ม�ค!าเก�น 1 หล�ก จะเป็,นตั�วที่ดและจะน�าไป็บวกในหล�กถ้�ดไป็
ในการบวกเลขในระบบฐานส�บ ถ้�าหากผลล�พธ์)ม�ค!าเก�น 9 จะม�ตั�วที่ดเก�ดข/0น ส�าหร�บในระบบฐานสองตั�วที่ดจะเก�ดข/0นเม#�อผลล�พธ์)ที่��ได�ม�ค!าเก�น 1
การบวกเลขฐานส�บ เทอม การบวกเลขฐานสอง11 ตั�วที่ด 1111 1110
099 ตั�วตั�0ง 0110 0011
095 ตั�วบวก 0101 1111
194 ผลล�พธ์) 1100 0010
ร�ปท�� 3.1 การบวกเลขฐานส�บและเลขฐานสอง
ในร ป็ 3.1 จะเป็,นการบวกเลขฐานส�บละเลขฐานสอง ในการบวกเลขฐานส�บในร ป็จะเป็,นการบวกเลข 95 ก�บ 99 โดยให�เลข 99
เป็,นตั�วตั�0ง และเลข 95 เป็,นตั�วบวก โดยจะบวกเลข 9 ก�บ 5 ที่างขวาม#อส�ดก!อน ผลล�พธ์)ที่��ได�จะเป็,น 4 ละม�เลข 1 เป็,นตั�วที่ด ตั�วที่ดตั�วน�0จะที่ดไป็ในหล�กส�บด�งแสดงในร ป็ โดยเข�ยนตั�วที่ดไว�ด�านบน ตั!อมาน�าตั�วที่ดที่��เป็,น 1 มาบวกก�บตั�วตั�0งเลข 9 และตั�วบวกเลข 9 ผลล�พธ์)ที่��ได�ค#อเลข 9 และม�ตั�วที่ดค#อเลข 1 ที่ดไป็ในหล�กร�อย ตั!อมาบวกหล�กร�อยโดยบวกตั�วที่ด 1 ก�บเลข 0 จะได�ผลล�พธ์)เป็,น 1 ด�งน�0นการบวก 99 ก�บ 95 จะได� 194
1 1
1 = +1 +1 10 11 +1
11ร�ปท�� 3.2 การบวก 1 สามตั�วที่�าได�โดยแยกการบวกเป็,นสองส!วน
การบวก 1 สามคร�0งแสดงได�ด�งร ป็ที่�� 3.3 เราจะแยกการบวกออกเป็,น 2 ส!วน ข�0นแรกจะบวก 1 ก�บ 1 ได�ผลล�พธ์)เป็,น 0 แล�วตั�วที่ดเป็,น 1 จากน�0นให�เข�ยน 0 ไว�เป็,นบ�ตัแรก ตั�วที่ดเป็,นบ�ตัที่��สองจะได�เป็,นค!า 10 ตั!อมาน�าค!า 1 จะได�ว!าการบวกบ�ตัแรกได� 1 ที่�าให�ผลบวกของเลข 1 3 ตั�วได�เที่!าก�บ 11
ข��นท�� 1 บวกเลขหล�กแรก (ขวาม#อส�ด)
ข��นท�� 2 พ�จารณาผลล�พธ์)ของเลขที่��บวก ถ้�าผลบวกมากกว!า 1 ให�ที่ดหล�กถ้�ดไป็ข��นท�� 3 ถ้�าม�เลขอ�กให�บวกตั!อจนหมด หร#อถ้�าม�การที่ดจากข�0นที่�� 2
น�ามารวมก�นก!อนจ/งบวกจนหมดตารางการบวกเลขฐานสอง
+ 0 1
0 0 1
1 1 10
ตารางข�อเท�จจร�งของการบวกเลขฐานสองการบวก เท!าก�บ หมายเหต#0+0 00+1 11+0 11+1 0 ใส! 0 ทด 1
1+1+1 1 ใส! 1 ทด 1ต�วอย!างจงหาผลบวกของ 110012 + 11012
ฐานสอง ฐานส�บ 11001 1(2)4 + 1(2)3 + 0 + 0 + 1(2)0 25 +1101 1(2)3 + 1(2)2 + 0 + 1(2)0 +13 100110
38
จงหาผลบวกของ 1100111012 +101101112
110011101 + 10110111 1001010100
2.การลบเลขฐานสองการลบเลขฐานสอง ค#อ การลบเลขฐานสองตั�0งแตั! 2 จ�านวน
ข/0นไป็ออกจากก�น จะม�หล�กการลบเช่!นเด�ยวก�บการลบเลขฐานส�บ โดยเร��มตั�นการลบเลขตั�0งแตั!บ�ตัตั��าส�ด เป็,นบ�ตัที่��ม�ที่��ม�ความส�าค�ญน�อยส�ด (LSB) หร#อบ�ตัด�านขวาม#อส�ดก!อน และค!อยๆเล#�อนไป็ที่างบ�ตัที่��ม�ความส�าค�ญมากส�ด (MSB) หร#อบ�ตัด�านซ้�ายม#อส�ด หล�กส�าค�ญของการลบเลขม�ด�งน�0หล�กการลบ
1. กรณ�หล�กตั�วตั�0งเที่!าก�นหร#อมากกว!าตั�วลบให�ลบตัามป็กตั�เหม#อนเลขฐานส�บ
2. กรณ�ที่��ลบไม!ได�ตั�องย#มจากหล�งถ้�ดไป็มาเที่!าก�บเลขฐานน�0นๆ แล�วบวกก�บตั�วตั�0งในหล�กที่��จะลบ เช่!นเลขฐานสองก4ตั�องย#มมา 2 เลขฐานแป็ดย#มมา 8 และเลขฐานส�บหกก4ย#มมา 16
3. ผลล�พธ์)ที่��ได�ตั�องเป็,นจ�านวนเลขที่��ไม!เก�นเลขฐานน�0นๆ4. หล�กที่��ถ้ กย#มมาจะตั�องลดลง 1 เสมอ
ต�วอย!างท�� (1101)2 - (1011)2 = (……..)2
ว�ธ์�ที่�า 1101 -1011
ตัอบ (0010) 2
อธ์�บาย 1. 1 - 1 = (0) 2 ใส! 0
2. 0 – 1 ย#มบ�ตัถ้�ดไป็มา 2 = (0 + 2) - 1 = (1) 2
ใส! 1
3. ถ้ กย#มไป็เหล#อ 0 - 0 = (0)2 ใส! 0
4. 1 - 1 = (0) 2 ใส! 0
3.การคู�ณเลขฐานสองระบบเลขฐานสองม�ตั�วเลขเพ�ยงสองตั�วค#อ 0 ก�บ 1
การค ณในระบบเลขฐานสอง เราสามารถ้กระที่�าได�ในล�กษณะเช่!นเด�ยวก�บการค ณเลขฐานส�บซ้/�งก4ค#อ ที่�าการตั�0งหล�กของการค ณให�ตัรงก�น โดยเร��มจากบ�ที่ หร#อหล�กตั�วเลขที่างขวาม#อส�ดก!อน เม#�อได�ที่�าการค ณ ตั�วตั�0งด�วยตั�วค ณที่�กตั�าแหน!งแล�ว ก4ให�ที่�าการบวกโดยใช่�กฎการบวกเลขฐานสองตัามป็กตั�ที่�กป็ระการ การค ณจ/งม�หล�กเกณฑ์)ด�งน�0
1 × 1 = 11 × 0 = 00 × 1 = 00 × 0 = 0
ด�งตั�วอย!างตั!อไป็น�0
4.การหารเลขฐานสองหล�กการหาร
1. ใช่�หล�กของการค ณเข�ามาช่!วย โดยการเดาผลหารก!อนแล�วน�าผลที่��ได�มาค ณก�บตั�วหาร2. น�าผลค ณที่��ได�จากข�อ 1 มาลบก�บตั�วตั�0ง โดยใช่�หล�กการลบของเลขฐานน�0นๆ 3. ที่�าเช่!นน�0ไป็เร#�อยๆ จนครบเหม#อนการหารเลขฐานส�บ
5.คูอมพร�เมนต'ระบบเลขที่��ใช่�ก�นใน Computer จะเป็,นเลข Binary ด�งน�0น
หากตั�องการบวกและลบเลขจ/งจ�าเป็,นตั�องม�ที่�0งวงจรบวกเลขและลบเลข จ/งที่�าให�เก�ดความย�!งยากมาก อ�กที่�0งหากผลล�พธ์)เก�ดค!าที่��ตั�ดลบจะเก�ดป็8ญหาว!าจะแสดงเคร#�องหมายอย!างไร ด�งน�0น ในระบบ
Computer จะม�การน�า Complement มาใช่�ในการลบเลขแตั!จะใช่�ว�ธ์�การบวกก�บ Complement ของตั�วลบ ซ้/�งจะได�ผลลบ และหากผลล� พธ์) เก�ดม�ค! าตั� ดลบ ก4 จ ะแสดงค! าผลล� พธ์) เป็, น เลข Complement
การคูอมพล�เมนต'เลขฐานสอง ในระบบเลข Binary จะม� Complement อย ! 2 อย!าง ค#อ
1’s complement ค#อการกล�บสถ้านะของส�ญญาณ จาก 0
เป็,น 1 และจาก 1 เป็,น 0 ที่�ก ๆ บ�ตั เช่!น 1’s complement ของ 1100011 ค#อ 0011100
2’s complement ค#อผลบวกของ 1’s complement
ก�บ เช่!น 2’s complement ของ 1100011 ค#อ 0011100 +
1 = 0011101 ซ้/�งม�ว�ธ์�ค�ดแบบล�ดค#อ ให�มองจากบ�ตัตั��าส�ด(ขวาส�ด) ไป็ย�งบ�ตัส งส�ด(ซ้�ายส�ด) หา 1 ตั�วแรกให�พบ หากย�งไม!พบ ให�คงค!าเด�มเอาไว� จนกระที่�0งพบ 1 ตั�วแรกก4ย�งคง 1 ไว� หล�งจากน�0นให�เป็ล��ยนค!าที่��เหล#อ จาก 0 เป็,น 1 และ จาก 1 เป็,น 0 ที่�0งหมด
ต�วอย!างBinary Number 1’s
complement 2’s complement 10101 01010
01011 10111 01000
01001 111100 000011
000100 11011011 00100100
00100101
ต�วอย!าง จงหา 1’S คอมพล�เมนตั) และ 2’S คอมพล�เมนตั) ของเลข (11011100)2
ว�ธ์�ที่�า
001000111
00100100
+
1’S คอมพล�เมนตั) ของ (11011100)2 =
2’S คอมพล�เมนตั) ของ (11011100)2 =
ต�วอย!าง จงหา 1’S คอมพล�เมนตั) และ 2’S คอมพล�เมนตั) ของเลข (10001001)2
ว�ธี�ท)า
1’S คอมพล�เมนตั) ของ (10001001)2 =
2’S คอมพล�เมนตั) ของ (10001001)2 =
การลบเลขฐานสองโดยใช่�ว�ธ์� 1 คอมพร�เมนตั)
1) หา 1’S คอมพล�เมนตั) ของตั�วลบถ้�าจ�านวนบ�ตัของตั�วลบน�อยกว!าจ�านวนบ�ตัของตั�วตั�0งตั�องเตั�ม 0 ข�างหน�าให�จ�านวนบ�ตัของตั�วตั�0งและตั�วลบเที่!าก�น แล�วจ/งหา 1’S คอมพล�เมนตั)ของตั�วลบ2) บวก 1’S คอมพล�เมนตั) ของตั�วลบเข�าก�บตั�วตั�0ง3) ถ้�าผลล�พธ์)จากข�อ 2 ม�จ�านวนบ�ตัมากกว!าตั�วตั�0งให�น�าบ�ตัที่��เก�นน�0นกล�บมาบวก บ�ตัตั��าส�ด (LSB) ผลบวกที่��ได�ค#อ ค�าตัอบ4) ถ้�าผลล�พธ์)จากข�อ 2 ม�จ�านวนบ�ตั เที่!าก�บ ตั�วตั�0งหร#อตั�วลบ ให�หา 1’S คอมพล�เมนตั) ของผลบวกน�0น ผลล�พธ์)ที่��ได� ค#อ ค�าตัอบแตั!ม�ค!าเป็,นลบ
011101101
01110111
+
ต�วอย!าง จงหาผลตั!างของเลขฐานสอง ตั!อไป็น�0โดยใช่�ว�ธ์�ของ 1’S
คอมพล�เมนตั)ก) 10010 – 1011
ข) 10100 – 11001
ว�ธ์�ที่�าก) 10010 – 1011
1’S คอมพล�เมนตั) ของ 01011 = 10100
10010 – 1011 = 111
ข) 10100 – 11001
1’S คอมพล�เมนตั) ของ 11010 = 00101 10100 – 11001 = - 101
6.การลบเลขฐานสองโดยใช้�ว�ธี� 2 คูอมพร�เมนต'1) หา 2’S คอมพล�เมนตั) ของตั�วลบ ถ้�าจ�านวนบ�ตัของตั�วลบน�อยกว!าจ�านวนบ�ตัของตั�วตั�0งตั�องเตั�ม 0 ข�างหน�าให�จ�านวนบ�ตัของตั�วตั�0งและตั�วลบเที่!าก�น แล�วจ/งหา 2’S คอมพล�เมนตั) ของตั�วลบ2) บวก 2’S คอมพล�เมนตั) ของตั�วลบเข�าก�บตั�วตั�0ง
100101010000110
+
1+
100111
101000011011010
+
3) ถ้�าผลล�พธ์)จากข�อ 2 ม�จ�านวนบ�ตั มากกว!าตั�วตั�0ง ให�ตั�ดบ�ตัที่��เก�นที่�0งส!วนที่��เหล#อค#อค�าตัอบ 4) ถ้�าผลล�พธ์)จากข�อ 2 ม�จ�านวนบ�ตั เที่!าก�บ ตั�วตั�0ง หร#อ ตั�วลบ ให�หา 2’S คอมพล�เมนตั) ของผลบวกน�0น ผลล�พธ์)ที่��ได� ค#อ ค�าตัอบแตั!ม�ค!าเป็,นลบ
ต�วอย!าง จงหาผลตั!างของเลขฐานสอง ตั!อไป็น�0โดยใช่�ว�ธ์�ของ 2’S
คอมพล�เมนตั)ก) 10010 – 1011
ข) 10100 – 11001
ว�ธี�ท)า ก) 10010 – 1011
1’S คอมพล�เมนตั) ของ 01011 = 10100
2’S คอมพล�เมนตั) ของ 01011 = 10101
10010 – 1011 = 111
ข) 10100 - 11001
1’S คอมพล�เมนตั) ของ 11001 = 00110
2’S คอมพล�เมนตั) ของ 11001 = 00111
100101010100111
+
1
101000011111011
+
2’S คอมพล�เมนตั) ของ 11011 = 00100 + 1 = 101
10100 - 11001 = - 101