คณิตศาสตรค์ อมพิวเตอร์ 20291-2207 91 4หน่วยที่ การแทนคา่ และหลกั การคานวณ ของเคร่ืองคอมพวิ เตอร์ สาระการเรียนรู้ จดุ ประสงคก์ ารเรยี นรู้ ▪ การจัดเกบ็ ค่าตวั เลขในคอมพวิ เตอร์ 1. มีความรเู้ กีย่ วกับการแทนคา่ เลขจำนวนเต็ม ▪ หลักการคำนวณของเครื่องคอมพิวเตอร์ ภายในคอมพวิ เตอร์ ▪ การบวกและการลบตามหลักของ 2. มคี วามรคู้ วามเขา้ ใจหลักการคำนวณของ คอมพิวเตอร์ เคร่อื งคอมพิวเตอร์ ▪ โอเวอร์โฟลว์ ▪ การคณู เลขตามหลกั การของคอมพิวเตอร์ 3. เข้าใจกลไกในการบวกเลขฐานสอง การแทน ▪ การหารเลขตามหลกั การของคอมพิวเตอร์ คา่ ดว้ ยเทคนิค BCD-8421 และรหสั เกนิ 3 สมรรถนะประจาหน่วย 4. มีความรคู้ วามเข้าใจเก่ยี วกบั การเกิดโอเวอร์ โฟลว์ 5. คำนวณเลขคณิตศาสตร์ ตามหลกั การ คำนวณของเคร่ืองคอมพวิ เตอรไ์ ด้ 6. บวกและลบเลขคณติ ศาสตรต์ ามหลักการของ คอมพวิ เตอร์ 7. คูณเลขตามหลกั การของคอมพิวเตอร์ 8. หารเลขตามหลกั การของคอมพิวเตอร์ แสดงความรเู้ ก่ยี วกับการจดั เก็บคา่ ตัวเลข หลักการคำนวณของเครอื่ งคอมพวิ เตอร์ การเกิดโอเวอร์ โฟลว์ มที กั ษะในการบวก ลบ คณู หาร ด้วยหลกั การของคอมพวิ เตอร์ ประยุกตใ์ ช้ความร้เู ก่ยี วกับการแทนคา่ และหลักการคำนวณของเครื่องคอมพวิ เตอร์ไปใชใ้ นชีวติ ประจำวัน และการประกอบอาชพี หน่วยท่ี 4 การแทนคา่ และหลกั การคานวณของเคร่ืองคอมพิวเตอร์
คณติ ศาสตรค์ อมพวิ เตอร์ 20291-2207 92 แบบทดสอบกอ่ นเรยี น หน่วยที่ 4 การแทนค่าและหลักการคำนวณของเคร่ืองคอมพวิ เตอร์ คำสั่ง จงทำเครอ่ื งหมาย X หน้าขอ้ ท่ีถูกทีส่ ดุ ลงในกระดาษคำตอบ 1. ขอ้ ใดท่ีแสดงใหร้ วู่ ่า Sign Bit มีคา่ เป็นบวก ก. เลข 0 ข. เลข 1 ค. เลข 2 ง. เลข 3 2. การจดั เกบ็ ข้อมลู ในคอมพิวเตอร์แบบ Sign-Magnitude เป็นการจดั เกบ็ ข้อมูลใด ก. จำนวนเต็มศูนย์ ข. จำนวนเตม็ บวก ค. จำนวนเตม็ ลบ ง. จำนวนทศนิยม 3. เครื่องหมายในขอ้ ต่อไปน้ี มคี วามสำคญั นอ้ ยทีส่ ุด ก. เครอื่ งหมาย / ข. เครอ่ื งหมาย + ค. เครอ่ื งหมาย – ง. ถูกทัง้ ข้อ ข. และ ค. 4. ขอ้ ใดคอื ผลลพั ธข์ อง 3 + 6 / 3 – 4 ก. 0 ข. 1 ค. -1 ง. -9 5. คา่ (75)10 มีคา่ เทา่ กับเลขฐานสองด้วยรหสั BCD-8421 ตามข้อใด ก. 1011 1011 ข. 0111 0101 ค. 1000 1000 ง. 1001 1001 หน่วยที่ 4 การแทนค่าและหลกั การคานวณของเคร่ืองคอมพิวเตอร์
คณิตศาสตรค์ อมพิวเตอร์ 20291-2207 93 6. ผลลพั ธ์ของ 1011012-0111012 ดว้ ยวิธีการบวกดว้ ยคอมพลเี มนต์ ขอ้ ใดถูกตอ้ ง ก. 101112 ข. 111112 ค. 100002 ง. 011112 7. ผลลพั ธข์ อง 110112+11012 ก. 001110002 ข. 110101112 ค. 101101112 ง. 001010002 8. จากโจทยต์ ่อไปน้ี ข้อใดมีผลลพั ธท์ เ่ี กิดโอเวอรโ์ ฟลว์ ก. (-7)+5 ข. (-4)+4 ค. 3+4 ง. 5+4 9. ผลลัพธ์ของ 1101 x 1011 ด้วยหลักการคำนวณภายในคอมพิวเตอร์ตามไดอะแกรม ฮาร์ดแวรส์ ำหรับการคูณ ตรงกบั ขอ้ ใด ก. 0111 0000 ข. 1010 0000 ค. 1010 1100 ง. 1000 1111 10. ผลลัพธ์ของ 0111 ÷ 11 ด้วยหลักการคำนวณภายในคอมพิวเตอร์ตามไดอะแกรมฮาร์ดแวร์ สำหรบั การหาร ตรงกับข้อใด ก. 0010 เศษ 00001 ข. 0010 เศษ 00011 ค. 1101 เศษ 00001 ง. 0011 เศษ 01001 ------------------------------------------------------------------------------------------- หน่วยที่ 4 การแทนคา่ และหลกั การคานวณของเคร่ืองคอมพิวเตอร์
คณิตศาสตรค์ อมพิวเตอร์ 20291-2207 94 การแทนค่าและหลกั การคานวณ ของเครื่องคอมพิวเตอร์ หวั ขอ้ เร่ือง 4.1 การจัดเก็บคา่ ตัวเลขในคอมพิวเตอร์ 4.2 หลักการคำนวณของเคร่ืองคอมพิวเตอร์ 4.3 การบวกและการลบตามหลกั ของคอมพวิ เตอร์ 4.4 โอเวอร์โฟลว์ 4.5 การคณู เลขตามหลกั การของคอมพวิ เตอร์ 4.6 การหารเลขตามหลักการของคอมพิวเตอร์ สาระสาคญั คอมพิวเตอร์เป็นเครื่องมือช่วยในการคำนวณ เปรียบเทียบ เก็บข้อมูล และวิเคราะห์ข้อมูล เพื่อให้แสดงผลเป็นรูปแบบต่าง ๆ ตามความต้องการ เช่น เป็นข้อความ รูปภาพ และตัวเลข เพราะ ภายในคอมพิวเตอร์มีหน่วยคำนวณและตรรกะ (Arithmetic Logic Unit : ALU) ซึ่งผู้สร้าง คอมพวิ เตอร์ ผู้ดูแลระบบ ตลอดจนผใู้ ช้งานต้องมีความรู้ ความเข้าใจเกี่ยวกับการแทนค่า การจัดเก็บ คา่ ตวั เลข และหลักการคำนวณของเคร่ืองคอมพวิ เตอร์ บทนา ระบบเลขฐานสิบท่ีใช้ในปัจจุบัน มีทั้งค่าบวกและค่าติดลบ (เช่น 5 และ -8) รวมถึงค่าตัว เลขทมี่ จี ดุ ทศนิยม (เช่น 5.55, -2.25) อยา่ งไรกด็ ี ในกรณคี า่ ตัวเลขติดลบจะใช้เครอ่ื งหมาย – นำหน้า ตัวเลข แต่การที่จะใช้คอมพิวเตอร์รับรู้ได้ว่าค่าใดเป็นค่าบวกหรือค่าใดเป็นค่าลบนั้น จะมี กระบวนการจัดการที่แตกต่างจากมนุษย์ กล่าวคือค่าตัวเลขที่จัดเก็บภายในคอมพิวเตอร์จะไม่ได้ใช้ เคร่ืองหมาย + หรือ – นำหน้าตัวเลขเหมอื นกับระบบเลขฐานสิบ หน่วยท่ี 4 การแทนคา่ และหลกั การคานวณของเคร่ืองคอมพิวเตอร์
คณติ ศาสตรค์ อมพิวเตอร์ 20291-2207 95 4.1 การจดั เก็บค่าตวั เลขในคอมพิวเตอร์ การแทนคา่ เลขจานวนเต็มไม่รวมเคร่ืองหมาย (Unsign Representation) การแทนค่าตัวเลขจำนวนเต็มแบบไม่รวมเครื่องหมาย หมายถึงการจัดเก็บค่าตัวเลขจำนวน เตม็ เฉพาะคา่ บวกเท่านั้น โดยสมมติวา่ ไดน้ ำเวริ ์ดขนาด 8 บิต มาใชจ้ ดั เกบ็ ค่าตวั เลขจำนวนเต็มไม่รวม เครื่องหมาย นั่นหมายความวา่ เวิร์ดขนาด 8 บิตนี้ จะสามารถแทนค่าตัวเลขให้มีความแตกต่างกนั ได้ ท้ังส้ิน 256 ตวั (28) ตัง้ แต่หมายเลข 0-255 โดยเป็นเลขจำนวนเตม็ ชนิดไม่รวมเคร่อื งหมาย (เฉพาะค่า บวก) ดังตัวอยา่ งเช่น 0000 0000 = 0 0000 0001 = 1 0010 1001 = 41 1000 0000 = 128 1111 1111 = 255 128 64 32 16 8 4 2 1 11111111 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255 ภาพที่ 4.1 เวิรด์ ขนาด 8 บิต สามารถแทนค่าตวั เลขสูงสุดได้ 256 ตัว (0-256) ▪ การแทนคา่ เลขจานวนเต็มรวมเคร่อื งหมาย (Sign Representation) เวิร์ดขนาด 8 บิตแทนค่าเลขจำนวนเต็มที่มีเฉพาะค่าบวก ได้ตั้งแต่ช่วง 0-255 แต่ในกรณีที่ ต้องการเวิร์ดขนาดเดิมดังกลา่ ว นำมาใช้แทนค่าเลขจำนวนเต็มรวมเคร่ืองหมาย ซึ่งหมายถึงการแทน ค่าตัวเลขที่ติดลบได้ด้วยนั้น จะมีกลไกในการจัดการคือ จะนำบิตซ้ายสุดที่ใช้แทนบิตเครื่องหมาย (Sign Bit) มาแทนคา่ ตัวเลขน้ัน ๆ ว่าเปน็ คา่ บวกหรือค่าลบ และดว้ ยสาเหตุนี้เอง จึงทำให้เวิร์ดขนาด 8 บิตต้องสูญเสียไป 1 บิตเพราะถูกนำไปใช้แทนบิตเครื่องหมายนั่นเอง ดังนั้น เมื่อเวิร์ดขนาด 8 บิต รวมบิตเครื่องหมายจึงแทนค่าตัวเลขให้มีความแตกต่างกันได้เพียงครึ่งหนึ่งเท่านั้น (128 ตัว) เพราะ ต้องแบง่ ตวั เลขออกเป็น 2 สว่ นด้วยกันคือ ตัวเลขทเ่ี ป็นคา่ บวก และตัวเลขที่เป็นค่าลบอยา่ งละครงึ่ ซ่ึง ประกอบดว้ ยชว่ งตัวเลขตง้ั แต่ -127 ถงึ +127 น่ันเอง หน่วยท่ี 4 การแทนคา่ และหลกั การคานวณของเคร่ืองคอมพิวเตอร์
คณิตศาสตรค์ อมพิวเตอร์ 20291-2207 96 1 0 0 1 0 0 1 0 = -18 Sign Bit Magnitude ภาพท่ี 4.2 เวิร์ดขนาด 8 บิตรวมบิตเครอ่ื งหมาย ตัวอย่าง 4.1 จงแทนคา่ เลขจำนวนเต็ม 240 ไมร่ วมเครื่องหมาย ภายใต้เวริ ด์ ขนาด 8 บิต 128 64 32 16 8 4 2 1 0 1111000 ดังน้นั 240 = (11110000)2 ตัวอย่าง 4.2 จงแทนคา่ เลขจำนวนเต็ม 127 รวมเครื่องหมาย ภายใต้เวิร์ดขนาด 8 บิต Sign Bit 64 32 16 8 4 2 1 1 0111111 ดงั นั้น 127 = (01111111)2 หน่วยท่ี 4 การแทนค่าและหลกั การคานวณของเครื่องคอมพิวเตอร์
คณติ ศาสตรค์ อมพวิ เตอร์ 20291-2207 97 ตัวอยา่ ง 4.3 จงแทนคา่ เลขจำนวนเต็ม -127 รวมเครอื่ งหมาย ภายใต้เวริ ์ดขนาด 8 บิต Sign Bit 64 32 16 8 4 2 1 11111111 ดงั นน้ั -127 = (11111111)2 จะพบว่า แม้เวิรด์ จะมีขนาด 8 บติ กต็ าม แตถ่ า้ ถกู นำมาใช้แทนค่าตัวเลขจำนวนเต็มรวม เคร่ืองหมายแล้ว กจ็ ะคงเหลอื เพยี ง 7 บิตเท่านั้น 4.2 หลกั การคานวณของเครื่องคอมพิวเตอร์ การคำนวณในเครื่องคอมพิวเตอร์ จะมีความสำคัญของเครื่องหมาย และมีลำดับก่อนหลังใน การคำนวณ ซึ่งเครอ่ื งหมายคณติ ศาสตรท์ ใ่ี ชใ้ นคอมพิวเตอร์ มีดงั น้ี 1. เครื่องหมาย + หมายถงึ การบวก เช่น A + B 2. เครื่องหมายลบ - หมายถงึ การลบ เช่น A - B 3. เครอ่ื งหมาย * หมายถึง การคณู เชน่ A * B 4. เครื่องหมาย / หมายถึง การหาร เชน่ A / B 5. เครอ่ื งหมาย ^ หมายถึง การยกกำลงั เชน่ A ^ 2 ความสำคัญของเครอ่ื งหมาย 1. ^ มคี วามสำคญั มากกว่า * และ / 2. * และ / มคี วามสำคัญมากกวา่ + และ – 3. + และ – มคี วามสำคญั เท่ากนั 4. * และ / มคี วามสำคัญเทา่ กัน ลำดบั ของการคำนวณ 1. ถ้าไม่มวี งเล็บกำกบั เครอ่ื งหมายใดมลี ำดับความสำคัญมากกวา่ จะถูกคำนวณกอ่ น 2. ถ้ามวี งเลบ็ กำกบั การคำนวณจะทำในวงเล็บกอ่ น 3. ถา้ มีลำดบั ความสำคญั เท่ากัน การคำนวณจะทำจากซ้ายไปขวา หน่วยที่ 4 การแทนค่าและหลกั การคานวณของเครื่องคอมพิวเตอร์
คณิตศาสตรค์ อมพวิ เตอร์ 20291-2207 98 ตัวอย่าง ลำดบั ของการคำนวณ 1. A + B ⋅ C 21 2. A + B / C ⋅ D 1 2 3 3. A ⋅ B + C / D - E 13 2 4 4. (A + B) ⋅ C 12 5. A + (B - (C + D)) ⋅ E ^ 2 21 3 5 4 4.3 การบวกและการลบตามหลกั การของคอมพวิ เตอร์ ภายในวงจรคอมพิวเตอร์ จะมีเฉพาะวงจรบวกเท่านั้น ดังนั้น ในการปฏิบัติการกับตัวเลขไม่ ว่าจะเปน็ การบวก การลบ การคณู หรอื การหารนนั้ ลว้ นถกู ดำเนินการโดยวงจรบวกทัง้ สิ้น ในหัวข้อน้ี จะกล่าวเฉพาะการปฏิบัติการกับเลขฐานสองเท่านั้น เพราะในการปฏิบัติการกับเลขฐานอื่น ๆ สามารถใช้เทคนิคการแปลงเลขฐานเหล่านั้นให้เป็นเลขฐานสองก่อน จากนั้นจึงทำการ บวก ลบ คูณ หาร แล้วค่อยแปลงกลบั ไปเปน็ เลขฐานนั้น ๆ ได้ตามต้องการ หน่วยที่ 4 การแทนค่าและหลกั การคานวณของเครื่องคอมพิวเตอร์
คณติ ศาสตรค์ อมพิวเตอร์ 20291-2207 99 ▪ การบวกและการลบ สำหรับเลขฐานสอง ซึ่งมีเพียง 0 กับ 1 เท่านั้น ดังนั้น การบวกของเลขทั้งสอง จึงสามารถ เป็นไปได้ดงั นี้ 0+0=0 0+1=1 1+0=1 1 + 1 = 10 (หากเป็นการทด จะใส่ 0 และทด 1 ใหก้ ับบิตถัดไป) ตัวอย่าง 4.4 จงบวกเลขฐานสอง 1010 และ 1011 เนือ่ งจากเปน็ การบวกชุดตวั เลขขนาด 8 บิต ใหใ้ ส่ 0 ดา้ นหนา้ จนครบ 8 บิต 1 1 1 ตัวทด 0 0 0 0 1 0 1 0 + ตัวตงั้ 0 0 0 1 0 1 1 1 ตวั บวก 0 0 1 0 0 0 0 1 ผลลพั ธ์ ดังนั้น 1010 + 10111 = (00100001)2 ตัวอยา่ ง 4.5 จงบวกเลขฐานสอง 11011 และ 1101 เน่ืองจากเป็นการบวกชดุ ตวั เลขขนาด 8 บิต ใหใ้ ส่ 0 ดา้ นหนา้ จนครบ 8 บติ 1111 ตวั ทด 0 0 0 1 1 0 1 1 + ตวั ตงั้ 0 0 0 0 1 1 0 1 ตัวบวก 0 0 1 0 1 0 0 0 ผลลัพธ์ ดังนั้น 11011 + 1101 = (00101000)2 หน่วยท่ี 4 การแทนค่าและหลกั การคานวณของเครื่องคอมพิวเตอร์
คณิตศาสตรค์ อมพิวเตอร์ 20291-2207 100 ▪ รหสั BCD-8421 รหัส BCD-8421 เป็นรหัสเลขฐานสองขนาด 4 บิต นำมาใช้แทนเลขฐานสิบ 0 ถึง 9 โดย 8, 4, 2, 1 นนั้ คือค่าประจำตำแหนง่ ของลำดับบิต 8 4 2 1 ← คา่ ของบติ ประจำตำแหน่ง 23 22 21 20 ภาพที่ 4.3 รหัส BCD-8421 กบั ค่าประจำตำแหนง่ ในแตล่ ะบติ เลขฐานสิบ BCD-8421 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 ตารางที่ 4.1 รหัส BCD-8421 ทีน่ ำมาใชแ้ ทนคา่ เลขฐานสิบ การแปลงเลขฐานสบิ ใหเ้ ปน็ เลขฐานสองดว้ ยรหสั BCD-8421 เลขฐานสบิ เลขฐานสอง BCD-8421 8 1000 1000 10 1010 0001 0000 96 1100000 1001 0110 120 1111000 0001 0010 0000 ตารางที่ 4.2 เปรยี บเทียบการแปลงเลขฐานสบิ เป็นเลขฐานสองด้วยวธิ ปี กติ กบั การแปลงเลขฐานสบิ เปน็ เลขฐานสองดว้ ยรหสั BCD-8421 หน่วยที่ 4 การแทนค่าและหลกั การคานวณของเคร่ืองคอมพิวเตอร์
คณิตศาสตรค์ อมพิวเตอร์ 20291-2207 101 ▪ รหสั เกิน (Excess 3 Code) รหัสเกิน 3 เป็นการนำรหัส BCD-8421 มาดัดแปลง จะพบว่ารหัสเกิน 3 นั้นจะมีค่ามากกว่า รหัส BCD-8421 อยู่ 3 เลขฐานสิบ BCD-8421 รหัสเกิน 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 ตารางท่ี 4.3 รหัส BCD-8421 และรหัสเกนิ 3 แม้ว่าตารางรหัส BCD-8421 จะช่วยให้การแปลงเลขฐานสิบมาเป็นเลขฐานสองได้ง่ายก็ตาม แต่ในการคำนวณในบางครั้ง อาจทำให้ผลลัพธ์ที่ได้ผิดพลาดจากความเป็นจริง โดยเฉพาะค่าที่มิได้ ปรากฎอยู่ในตารางรหัส ดังนั้น จึงต้องแก้ไขด้วยการนำเทคนิครหัสเกนิ 3 มาใช้ร่วมกันกับรหัส BCD- 8421 เพอื่ ให้ผลลพั ธ์จากการคำนวณมีค่าถูกต้อง สำหรับวธิ ีการก็คือ ให้แปลงตวั เลขเหล่าน้ันเป็นรหัส เกิน 3 เสยี ก่อน แลว้ วจงึ ค่อยนำมาคำนวณ กจ็ ะไดผ้ ลลพั ธ์ที่ถูกต้องตามตารางรหสั BCD-8421 ทันที Decimal BCD-8421 Excess 3 5 0101 1000 + 9 + + 14 1001 1100 1110 10100 ตารางท่ี 4.4 เปรียบเทยี บผลลัพธจ์ ากการบวกเลขฐานด้วยวิธกี ารตา่ ง ๆ หน่วยท่ี 4 การแทนคา่ และหลกั การคานวณของเครื่องคอมพิวเตอร์
คณิตศาสตรค์ อมพวิ เตอร์ 20291-2207 102 จากตารางดังกล่าวเป็นตัวอย่างการบวกค่าตัวเลขระหว่าง 5 และ 9 ด้วยวิธีบวกเลขฐานสิบ บวกด้วยรหัส BCD และบวกด้วยรหัสเกิน 3 ซึ่งก็ได้เกิดข้อผิดพลาดขึ้น ตามรายละเอียดที่อธิบาย ต่อไปนี้ ▪ 5 + 9 ผลลัพธ์ที่ได้คือ 14 ซึ่งเป็นการบวกด้วยวิธีปกติของเลขฐานสิบ ผลลัพธ์ที่ได้ ถูกต้อง ▪ เมือ่ นำมาแปลงเป็นเป็นเลขฐานสองดว้ ยเทคนิค BCD-8421 ผลลัพธจ์ ากการบวกจะ ได้เทา่ กบั 1110 ซง่ึ คา่ ดังกลา่ ว มิไดป้ รากฏอยู่ในตารางรหัส BCD-8421 เลย และค่า ในตาราง BCD-8421 จะมคี า่ ต้งั แต่ 0000 ถงึ 1001 เท่านัน้ จงึ ทำใหผ้ ลลัพธ์ที่ได้เกิด ขอ้ ผดิ พลาด ▪ แนวทางในการแก้ไขสำหรับกรณีนี้คือ ให้แปลงค่าเป็นรหัสเกิน 3 เสียก่อน แล้วจึง นำมาบวกกัน ดังนนั้ เมือ่ ได้แปลงเป็นรหสั เกนิ แล้ว จะได้ค่าดงั น้ี 5 = 0101 + 11 = 1000 9 = 1001 + 11 = 1100 เมอ่ื นำคา่ 1000 + 1100 มารวมกัน จะได้ 1000 + 1100 = 10100 จะพบว่ามีอยู่ 5 บิตด้วยกัน ให้แยกชุดตัวเลขออกไปทีละ 4 บิต ชุดใดมีไม่ครบก็ให้เติมบติ 0 ที่ด้านหน้าจนครบ 4 ดังนนั้ 10100 = 0001 0100 = 14 เมื่อนำค่าทั้งสองไปเทียบกับตารางรหัส BCD-8421 ก็จะได้ผลลัพธ์เป็น 14 ซึ่งเป็นผลลัพธ์ที่ ถูกต้อง ▪ การลบเลขฐานสอง (การบวกดว้ ยคอมพลีเมนต)์ ในการบวกและการลบตัวเลข รวมถึงค่าตัวเลขที่เป็นค่าบวกหรือลบ ซึ่งในระบบเลขฐานสิบ จะใช้เครื่องหมาย + และ - เป็นตัวปฏิบัติการ แต่ในคอมพิวเตอร์ การบวกและการลบจะใช้วงจร เดียวกัน กล่าวคือ จะไม่มีการแยกวงจรเพื่อใช้สำหรับการบวก หรือวงจรเพื่อใช้สำหรับการลบ ดังน้ัน การลบภายในคอมพิวเตอร์ จึงต้องใชว้ งจรบวกมาประยุกตใ์ ช้ด้วยการนำเทคนคิ ของคอมพลีเมนต์เข้า มาชว่ ย หลักการของ Two’s Complement มอี ยู่ 2 ขัน้ ตอน คือ 1. แปลงเลขฐานสองให้อยู่ในรูปของ One’s Complement ด้วยการกลับบิตตรงกันข้าม เชน่ จากบิต 0 เป็นบิต 1 หรือจากบติ 1 เป็นบติ 0 2. บวก 1 เพิม่ เข้าไป เพื่อให้อย่ใู นรูปแบบของ Two’s Complement หน่วยท่ี 4 การแทนคา่ และหลกั การคานวณของเคร่ืองคอมพิวเตอร์
คณติ ศาสตรค์ อมพวิ เตอร์ 20291-2207 103 ในทำนองเดียวกัน กรณีค่าตัวเลขที่อยู่ในรูปแบบของ Two’s Complement เมื่อต้องการ ทราบผลลพั ธ์วา่ เปน็ ค่าใด ก็ให้ทำการแปลงกลับ เพ่อื ให้ได้ผลลพั ธ์เดิมกลับคนื มา ทง้ั นีใ้ นกรณี ตวั เลขเป็นค่าบวกเดิมอย่แู ลว้ กไ็ มจ่ ำเปน็ ตอ้ งแปลงคา่ ใด ๆ ตัวอยา่ ง 4.6 จงแปลง (+10)10 เป็น Two’s Complement (+10)10 = 000010102 ดงั นั้นไม่ต้องแปลงคา่ ใด ๆ เนื่องจากเปน็ ค่าบวก ตัวอย่าง 4.7 จงแปลง (-4)10 เป็น Two’s Complement (4)10 = 0000 0100 ตอ้ งการแปลงเปน็ ค่าลบด้วยเทคนิคคอมพลเี มนต์ แปลงเป็น One’s Complement ด้วยการกลับบิตจาก 0 เปน็ 1 หรอื จาก 1 เปน็ 0 ผลทไ่ี ด้คอื 0000 0100 = 1111 1011 แปลงเปน็ Two’s Complement ดว้ ยการบวก 1 เพม่ิ เขา้ ไป ผลลพั ธ์ท่ีได้คอื 1111 1011 + 1 = 1111 1100 ดังนัน้ (-4)10 = 111111002 ต่อมาเมื่อต้องการทราบว่า ค่า 111111002 ซึ่งเป็น Two’s Complement ตรงกับค่าใดใน เลขฐานสิบ กใ็ หท้ ำการแปลงย้อนกลบั ตามวธิ ีการเดียวกนั ดังนี้ กลบั บิต 0, 1 1111 1100 = 0000 0011 บวก 1 เพ่มิ เขา้ ไป 0000 0011 + 1 = 0000 0100 ดงั นนั้ 111111002 = (4)10 หน่วยท่ี 4 การแทนคา่ และหลกั การคานวณของเครื่องคอมพิวเตอร์
คณติ ศาสตรค์ อมพิวเตอร์ 20291-2207 104 ตัวอย่าง 4.8 จงแสดงขน้ั ตอนการลบคา่ ตัวเลข (5)10 + (-2)10 ด้วยเลขฐานสองตามเทคนคิ คอมพลเี มนต์ คา่ ตวั เลข 5 แปลงเปน็ เลขฐานสองไดเ้ ทา่ กับ 00000101 คา่ ตัวเลข -2 แปลงเปน็ เลขฐานสองดว้ ยเทคนิค Two’s Complement ได้ดงั น้ี 0000 0010 = 1111 1101 + 1 = 1111 1110 ดังนัน้ 00000101+ (+5)10 11111110 (-2)10 00000011 (+3)10 ดงั นนั้ (5 + (-2))10 = 000000112 ตัวอยา่ ง 4.9 จงแสดงขน้ั ตอนการลบคา่ ตวั เลข (-1)10 + (-4)10 ดว้ ยเลขฐานสองตามเทคนิคคอมพลีเมนต์ ค่าตวั เลข -1 แปลงเป็นเลขฐานสองด้วยเทคนคิ Two’s Complement ไดด้ งั น้ี 0000 0001 = 1111 1110 + 1 = 1111 1111 คา่ ตัวเลข -4 แปลงเป็นเลขฐานสองดว้ ยเทคนิค Two’s Complement ไดด้ งั น้ี 0000 0100 = 1111 1011 + 1 = 1111 1100 ดงั นน้ั 1 1 1 1 1 1 1 1 + (-1)10 11111100 (-4)10 11111011 (-5)10 ดงั นน้ั (-1)10 + (-4)10 = 111110112 เนื่องจากผลลัพธ์เป็นค่าติดลบ สามารถพิสูจน์ว่าคือ 5 (ติดลบ) ด้วยเทคนิคคอมพลีเมนต์ ซ้ำอีกคร้งั 1111 1011 = 0000 0100 + 1 = 0000 0101 = 5 หน่วยที่ 4 การแทนค่าและหลกั การคานวณของเคร่ืองคอมพิวเตอร์
คณิตศาสตรค์ อมพิวเตอร์ 20291-2207 105 4.4 โอเวอรโ์ ฟลว์ (Overflow) โอเวอร์โฟลว์ คือค่าตัวเลขที่มีค่าเกินกว่าที่จะรับได้ ทำให้ผลลัพธ์ของค่าตัวเลขนั้นเกิด ข้อผิดพลาด โดยกฎของโอเวอร์โฟลว์คือ ถ้าชุดตัวเลขสองค่าที่มี Sign เหมือนกัน (Large Magnitudes) มาบวกกัน จะเกิดปรากฎการณ์โอเวอร์โฟลว์ขึ้น ผลลัพธ์ที่ได้จะได้บิตเครื่องหมาย (Sign-Bit) ที่ตรงข้ามกัน ทำให้ค่าที่ได้ผิดเพี้ยนไปจากความจริง เพราะผลลัพธ์จากการบวกชุดตัวเลข น้นั มคี า่ เกินกวา่ ชว่ งตวั เลขที่รบั ไดน้ นั่ เอง ตัวอย่างเช่น สมมติว่า เวิร์ดหนึ่งมีขนาด 8 บิต พร้อมบิตเครื่องหมาย (มีค่าบวกและค่าลบ อย่างละหนึ่ง) เมื่อคำนวณผลรวมระหว่างตวั เลข (-80)10 และ (+50)10 ซ่งึ จรงิ ๆ แลว้ ค่าที่ได้ควรเป็น (+130)10 แต่คอมพวิ เตอรก์ ลับแสดงผลออกมาเปน็ (-126)10 นัน่ เป็นเพราะเกดิ โอเวอรโ์ ฟลว์น่ันเอง 0 1 0 1 0 0 0 0 + (+80)10 00110010 (+50)10 10000010 (-126)10 ภาพที่ 4.4 การเกิดโอเวอรโ์ ฟลว์ ภายหลังจากรวมคา่ ตัวเลขทง้ั สอง จากผลการบวกดังกล่าว สามารถอธิบายได้ดังนี้ ผลลัพธท์ ี่ได้ 10000010 มีขนาด 8 บิต รวม บิตเครื่องหมาย ดังนั้นบิตซ้ายสุดจึงถูกสงวนไว้เพื่อใช้เป็นบิตเครื่องหมาย และบิตซ้ายสุดมีค่าเป็น 1 นั่นหมายความว่าเป็นค่าติดลบ จึงต้องแปลงบิตกลับแล้วบวกเพิ่มอีก 1 เข้าไป ผลลัพธ์ที่ได้จึงมีค่า เทา่ กับ 0 1 1 1 1 1 1 0 ซงึ่ ก็คือค่า (+126)10 นัน่ เอง อันเป็นผลลพั ธท์ ี่ผดิ พลาดท่ีเกดิ จากขนาดของ เวริ ์ดไมส่ ามารถรองรบั ค่าที่เกนิ กว่านไี้ ด้ จึงเปน็ ทีม่ าของโอเวอรโ์ ฟลว์นน่ั เอง (1) (-7) + 5 (2) (-4) + 4 1001+ 1100+ 0101 0100 1 1 1 0 = -2 0000 = 0 (3) 3 + 4 (4) (-4) + (-1) 0 0 01 1 + 1100+ 0100 1111 0111 = 7 1 0 1 1 = -5 หน่วยท่ี 4 การแทนค่าและหลกั การคานวณของเครื่องคอมพิวเตอร์
คณิตศาสตรค์ อมพวิ เตอร์ 20291-2207 106 (5) 5 + 4 (6) (-7) + (-6) 0101+ 1001+ 0100 1010 1 0 0 1 = Overflow! 0 0 1 1 = Overflow! ภาพท่ี 4.5 ตวั อย่างการบวกตวั เลขดว้ ยเทคนคิ Two’s Complement และการเกดิ โอเวอรโ์ ฟลว์ 4.5 การคณู ตามหลกั การของคอมพวิ เตอร์ เมื่อเปรียบเทียบกับการบวกและการลบแล้ว การคูณจะมีขั้นตอนการทำงานที่ ซับซ้อนและยุ่งยากกว่า (กระบวนการคณู ภายในฮาร์ดแวร์คอมพิวเตอร์จริง ๆ อยา่ งไรกต็ าม ก่อนที่จะ เข้าสู่เนือ้ หาการคูณภายในคอมพิวเตอร์ เรามาทำความเขา้ ใจเกี่ยวกบั การตั้งคูณในรูปแบบท่ัวไปก่อน ซึ่งมวี ิธีการดังน้ี 1x1=1 1x0=0 0x1=0 0x0=0 ดังนั้น การตั้งคูณแบบทั่วไประหว่างเลขฐานสอง 1101 x 1011 จะมีค่าผลลัพธ์ ที่ได้คือ 10001111 ซง่ึ ตรงกบั คา่ 143 ในเลขฐานสบิ 1101 (13)10 ตัวตั้ง (Multiplicand : M) 1011 (11)10 ตวั คูณ (Multipler : Q) 1101 1101 0 0 0 0 นำมารวมกัน 1101 1 0 0 0 1 1 1 1 (143)10 ผลลัพธ์ (Product : P) ภาพท่ี 4.6 แสดงการตงั้ คูณแบบทวั่ ไปในเลขฐานสอง หน่วยที่ 4 การแทนคา่ และหลกั การคานวณของเครื่องคอมพิวเตอร์
คณติ ศาสตรค์ อมพิวเตอร์ 20291-2207 107 Multiplicand (M) Add Shift and m3 m2 m1 m0 Add Control 4 Logic 4-Bit Adder q0 4 Shift Right C a3 a2 a1 a0 q3 q2 q1 q0 A Multiplier (Q) Register 4 ภาพท่ี 4.7 บล็อกไดอะแกรมของฮารด์ แวร์ท่ใี ชจ้ ัดการกบั การคูณ หลักการคำนวณเกี่ยวกับการคูณภายในคอมพิวเตอร์จริง ๆ ซึ่งเป็นวงจรภายในฮาร์ดแวร์ และยังสามารถสรา้ งอลั กอริทมึ ในการจัดการท่ีแตกต่างกันได้ ตวั อยา่ งการคูณดว้ ยตวั เลขขนาด 4 บิต วิธีการ 1. กำหนดค่าตัวแปรตามข้อกำหนดดงั น้ี ▪ ตัวตั้ง (Multiplicand) จะจัดเก็บลงในรจี สิ เตอร์ M ▪ ตวั คณู (Multiplier) จะจัดเก็บลงในรจี ิสเตอร์ Q ▪ รีจิสเตอร์ A ถูกกำหนดคา่ เริม่ ตน้ เปน็ ศนู ย์ โดยมีจำนวนบิตเท่ากับขนาดบิตที่กำหนด (ในท่ีน้คี ือ 4 บิต) 2. พจิ ารณาบติ ขวาสุดของรีจสิ เตอร์ Q (Rightmost Bit) ▪ ถ้ามีคา่ เปน็ 1 ใหน้ ำคา่ ในรีจิสเตอร์ M และ A มาบวกกนั ผลลพั ธท์ ี่ไดเ้ กบ็ ไว้ในรีจสิ เตอร์ A จากน้ัน ใช้บติ 0 (รีจสิ เตอร์ C) ดันเลื่อนไปทางขวา (shif right) ▪ ถา้ มีค่าเป็น 0 ใหด้ ำเนนิ การเพียงอยา่ งเดยี วคอื ใชบ้ ติ 0 ดนั เพอื่ เลอ่ื นขวา 3. จำนวนรอบการทำงาน จะกระทำเทา่ กับจำนวนบิต (ในที่นีใ้ ช้ 4 บติ กค็ อื 4 รอบ) หน่วยที่ 4 การแทนคา่ และหลกั การคานวณของเคร่ืองคอมพิวเตอร์
คณติ ศาสตรค์ อมพิวเตอร์ 20291-2207 108 ตวั อย่าง 4.10 จงแสดงวิธกี ารคณู ระหว่าง 1101 x 1011 ด้วยหลกั การคำนวณภายในคอมพวิ เตอรต์ ามไดอะแกรม ฮาร์ดแวรส์ ำหรบั การคณู กำหนดค่าเร่มิ ตน้ M 1101 CA Q 0 0000 1011 รอบที่ 1 : ให้พิจารณาจากบิตขวาสุดของ Q ซึ่งมีค่าเป็น 1 ดังนั้นให้นำค่า M และ A มารวมกัน แล้วเกบ็ ไวท้ ี่ A แล้วใชบ้ ิต 0 (รจี สิ เตอร์ C) ดันขวา M 1101 CA Q 0 0000 1011 0 1101 1011 Add M to A 0 0110 1101 Shift right รอบที่ 1 รอบที่ 2 : ให้พิจารณาจากบิตขวาสุดของ Q ซึ่งมีค่าเป็น 1 ดังนั้นให้นำค่า M และ A มารวมกัน แล้วเก็บไว้ที่ A : ซึ่งก็คือ 1101 + 0110 = 1 0011 โดยบิตซ้ายสุดที่เพิ่มเข้ามาให้นำไปใส่ใน รจี ิสเตอร์ C จากนน้ั ก็ใหใ้ ชบ้ ติ 0 ดันขวา M 1101 CA Q 0 0000 1011 0 1101 1011 Add M to A รอบท่ี 1 0 0110 1101 Shift right 1 0011 1101 Add M to A รอบที่ 2 0 1001 1110 Shift right หน่วยที่ 4 การแทนค่าและหลกั การคานวณของเคร่ืองคอมพิวเตอร์
คณติ ศาสตรค์ อมพิวเตอร์ 20291-2207 109 รอบที่ 3 : ให้พิจารณาจากบิตขวาสุดของ Q ซึ่งมีค่าเปน็ 0 ดังนั้นจะดำเนินการเพียงอย่างเดียวคอื การใช้บิต 0 ดนั ขวา M 1101 CA Q 0 0000 1011 0 1101 1011 Add M to A รอบท่ี 1 0 0110 1101 Shift right 1 0011 1101 Add M to A รอบท่ี 2 0 1001 1110 Shift right รอบที่ 3 0 0100 1111 Shift (no add) รอบที่ 4 : ให้พิจารณาจากบิตขวาสุดของ Q ซึ่งมีค่าเป็น 1 ดังนั้นให้นำค่า M และ A มารวมกัน แลว้ เกบ็ ไวท้ ่ี A : ซึ่งก็คอื 1101 + 0100 = 1 0001 จากนนั้ ก็ให้ใชบ้ ิต 0 ดนั ขวา M 1101 CA Q 0 0000 1011 0 1101 1011 Add M to A Shift right 0 0110 1101 รอบที่ 1 1 0011 1101 Add M to A รอบท่ี 2 0 1001 1110 Shift right รอบที่ 3 0 0100 1111 Shift (no add) รอบท่ี 4 1 0001 1111 Add M to A 0 1000 1111 Shift right จากการคำนวณท้ัง 4 รอบ ผลลพั ธ์ทีไ่ ดจ้ ากการคูณคอื 1000 1111 หน่วยท่ี 4 การแทนคา่ และหลกั การคานวณของเครื่องคอมพิวเตอร์
คณิตศาสตรค์ อมพวิ เตอร์ 20291-2207 110 4.6 การหารตามหลกั การของคอมพวิ เตอร์ การหารจะตั้งอยู่บนหลักการเดียวกันกับการคูณ แต่จะมีกฎเกณฑ์ที่แตกต่างกัน และมีความ ซบั ซอ้ นมากกวา่ เลก็ นอ้ ย ตวั หาร 11 ) 0 0 1 0 ผลลพั ธ์ 0 1 1 1 ตัวตงั้ เศษ 11 01 ภาพที่ 4.8 แสดงการตง้ั หารแบบทัว่ ไป Divisor (M) Add/Sub Shift and 0 m3 m2 m1 m0 Add/Sub Control Logic 5 q0 5-Bit Adder 5 Shift Right a4 a3 a2 a1 a0 q3 q2 q1 q0 Dividend (Q) a4 5 A Register ภาพที่ 4.9 บล็อกไดอะแกรมของฮารด์ แวรท์ ่ใี ช้สำหรับการหาร หน่วยที่ 4 การแทนค่าและหลกั การคานวณของเครื่องคอมพิวเตอร์
คณิตศาสตรค์ อมพิวเตอร์ 20291-2207 111 เป็นบล็อกไดอะแกรมของฮาร์ดแวร์ที่นำมาใช้เปน็ อัลกอริทึมจัดการกับการหาร ตัวอย่างการ หารด้วยตวั เลขขนาด 4 บิต วธิ กี าร 1. กำหนดค่าตวั แปรตามข้อกำหนดดังนี้ ▪ ตวั ตั้ง (Dividend) จะจัดเกบ็ ลงในรีจสิ เตอร์ Q ▪ ตัวหาร (Divisor) จะจัดเก็บลงในรีจิสเตอร์ M โดยให้เพิ่มบิต 0 ที่ด้านซ้ายเพิ่มอีก หนึ่งตวั ▪ รีจสิ เตอร์ A ถกู กำหนดคา่ เร่ิมต้นเป็นศนู ย์ รวมเขา้ กับบติ 0 เพมิ่ อกี หนงึ่ ตวั 2. นำบิต 0 มาดนั รีจิสเตอร์ Q เพื่อเลือ่ นไปทางซ้าย (Shift Left) 3. นำค่า M มาหักออกจาก A (ซึ่งก็คือ A-M แล้วนำผลที่ได้ไปเก็บไว้ที่ A) ทั้งนี้การลบก็คือ การบวกดว้ ยคอมพลเี มนต์ 4. พิจารณาบติ ซา้ ยสุดของรจี ิสเตอร์ A (Leftmost Bit) ▪ ถา้ มีค่าเป็น 1 ใหด้ งึ ค่าเดิมกอ่ นหนา้ น้ันลงมา แล้วเคลียร์ค่าบิตขวาสุดของรจี ิสเตอร์ Q ให้เป็น ศูนย์ ▪ ถ้ามีค่าเปน็ 0 ให้เซ็ตคา่ บิตขวาสุดของรจี ิสเตอร์ Q เปน็ 1 5. จำนวนรอบการทำงาน จะกระทำเทา่ กับจำนวนบิต (ในที่นีใ้ ช้ 4 บิต ก็คือ 4 รอบ) ตัวอย่าง 4.11 จงแสดงวิธีการหารระหว่าง 0111 ÷ 11 ด้วยหลักการคำนวณภายในคอมพิวเตอร์ตามไดอะแกรม ฮารด์ แวร์สำหรบั การหาร กำหนดค่าเรมิ่ ตน้ M 00011 AQ 00000 0111 รอบที่ 1 : ▪ นำบิต 0 มาดนั รจี สิ เตอร์ Q เพอื่ เล่อื นไปทางซ้าย ▪ คำนวณ A-M ซึง่ จะได้ 00000 + 11101 = 11101 หน่วยท่ี 4 การแทนคา่ และหลกั การคานวณของเครื่องคอมพิวเตอร์
คณิตศาสตรค์ อมพิวเตอร์ 20291-2207 112 ▪ เนื่องจากบิตซ้ายสุดของรีจิสเตอร์ A มีค่าเป็น 1 ให้ดึงค่าเดิมลงมา (ค่า A และ Q) จากนน้ั ให้เคลียร์คา่ บิตขวาสุดของรจี ิสเตอร์ Q เป็น 0 M 00011 AQ 00000 0111 00000 1110 Shift left รอบท่ี 1 1 1101 1110 Substract M from A 010 0 0 0 1110 Restore A 00000 1110 Clear q0 รอบที่ 2 : ▪ นำบิต 0 มาดนั รีจสิ เตอร์ Q เพอ่ื เลือ่ นไปทางซ้าย ▪ คำนวณ A-M ซงึ่ จะได้ 00001 + 11101 = 11110 ▪ เนื่องจากบิตซ้ายสุดของรีจิสเตอร์ A มีค่าเป็น 1 ให้ดึงค่าเดิมลงมา จากนั้นให้เคลียร์คา่ บติ ขวาสดุ ของรีจสิ เตอร์ Q เปน็ 0 M 00011 AQ 00000 0111 1010 0 0 0 1110 Shift left รอบท่ี 1 11101 1110 Substract M from A 00000 1110 Restore A 00000 1110 Clear q0 00001 1100 Shift left รอบที่ 2 1111 1 1 0 1100 Substract M from A 00001 1100 Restore A 1100 Clear q0 00001 หน่วยท่ี 4 การแทนค่าและหลกั การคานวณของเครื่องคอมพิวเตอร์
คณิตศาสตรค์ อมพิวเตอร์ 20291-2207 113 รอบท่ี 3 : ▪ นำบติ 0 มาดันรจี ิสเตอร์ Q เพอ่ื เลือ่ นไปทางซา้ ย ▪ คำนวณ A-M ซงึ่ จะได้ 00011 + 11101 = 00000 ▪ เนื่องจากบิตซ้ายสุดของรีจิสเตอร์ A มีค่าเป็น 0 ให้เซ็ตค่าบิตขวาสุดของรีจิสเตอร์ Q เปน็ 1 M 00011 AQ 00000 0111 00000 1110 Shift left รอบที่ 1 1 1101 1110 Substract M from A 010 0 0 0 1110 Restore A 00000 1110 Clear q0 00001 1100 Shift left รอบท่ี 2 11110 1100 Substract M from A 010 0 0 1 1100 Restore A 00001 1100 Clear q0 00011 1000 Shift left รอบท่ี 3 00000 1000 Substract M from A 010 0 0 0 1 0 0 1 Set q0 หน่วยท่ี 4 การแทนค่าและหลกั การคานวณของเคร่ืองคอมพิวเตอร์
คณติ ศาสตรค์ อมพวิ เตอร์ 20291-2207 114 รอบที่ 4 : ▪ นำบิต 0 มาดนั รีจสิ เตอร์ Q เพือ่ เลือ่ นไปทางซา้ ย ▪ คำนวณ A-M ซ่งึ จะได้ 00001 + 11101 = 11110 ▪ เนื่องจากบติ ซา้ ยสุดของรีจสิ เตอร์ A มีค่าเป็น 1 ให้ดึงค่าเดิมลงมา จากนั้นให้เคลียร์ค่า บติ ขวาสุดของรสิ เตอร์ Q เป็น 0 M 00011 AQ 00000 0111 00000 1110 Shift left รอบท่ี 1 1 1101 1110 Substract M from A 010 0 0 0 1110 Restore A 00000 1110 Clear q0 00001 1100 Shift left รอบท่ี 2 11110 1100 Substract M from A 010 0 0 1 1100 Restore A 00001 1100 Clear q0 00011 1000 Shift left รอบที่ 3 00 0 0 0 0 1 0 0 0 Substract M from A 010 0 0 0 1 0 0 1 Set q0 00001 0010 Shift left รอบท่ี 4 1 1110 0010 Substract M from A 010 0 0 1 0010 Restore A 00001 0010 Clear q0 ดังนน้ั จากการคำนวณท้ัง 4 รอบ ผลลพั ธท์ ี่ได้จากการหารคือ 0010 เศษ 00001 หน่วยที่ 4 การแทนคา่ และหลกั การคานวณของเคร่ืองคอมพิวเตอร์
คณิตศาสตรค์ อมพิวเตอร์ 20291-2207 115 สรุปทา้ ยหน่วย การแทนค่าเลขจำนวนเต็มแบบไม่รวมเครื่องหมาย หมายถึงการจัดเก็บค่าตัวเลขจำนวน เต็มเฉพาะค่าบวกเท่านั้น ดังนั้น ถ้าเวิร์ดเก็บข้อมูลมีขนาด 8 บิต ก็สามารถนำมาใช้แทนค่าตัวเลขได้ ท้งั สิ้น 256 ตวั (28) โดยมีชว่ งตัวเลขตั้งแต่ 0 -255 การแทนค่าเลขจำนวนเต็มรวมเครื่องหมาย หมายถึงการจัดเก็บค่าตัวเลขที่มีทั้งค่าบวก และลบ โดยจะนำบิตซ้ายสุดแทนบิตเครื่องหมาย เพื่อแทนค่าตัวเลขว่าเป็นบวกหรือลบ ดังนั้นหาก เวริ ด์ เกบ็ ขอ้ มลู มีขนาด 8 บติ ก็จะตอ้ งสูญเสยี ไป 1 บติ ทำใหเ้ หลอื 7 บติ เพื่อใชแ้ ทนข้อมลู ได้ 128 ตัว (27) ซง่ึ ประกอบดว้ ยชว่ งตวั เลข -127 ถงึ 0 และ 0 ถงึ 127 ภายในวงจรคอมพิวเตอร์ จะมีเฉพาะวงจรบวกเท่านั้น ดังนั้น ในการปฏิบัติการกับตัวเลขไม่ ว่าจะเป็นการบวก การลบ การคณู หรอื การหารนน้ั ล้วนถกู ดำเนนิ การโดยวงจรบวกท้ังสนิ้ รหัส BCD-8421 เป็นรหัสเลขฐานสองขนาด 4 บิต ใช้แทนเลขฐานสิบ 0 ถึง 9 โดย 8, 4, 2, 1 น่นั คอื ค่าประจำตำแหนง่ ของลำดับบติ ขอ้ ดีของการนำรหสั BCD-8421 มาใช้ก็คอื ทำใหเ้ ราสามารถ แปลงเลขฐานสบิ เป็นรหัสเลขฐานสองได้ง่ายขึ้น รหสั เกิน 3 เปน็ การนำรหัส BCD-8421 มาดดั แปลง โดยจะมีคา่ มากกวา่ รหัส BCD-8421 อยู่ 3 ในการนำเทคนคิ รหัสเกนิ 3 มาใช้ กเ็ พ่อื ให้ผลลพั ธ์จากการคำนวณมีคา่ ถูกต้อง สามารถแยกกลุ่มบิต ทีละ 4 บติ และนำไปเทียบค่าจากตารางรหสั BCD-8421 ไดท้ ุกตวั หลักการคำนวณของเครื่องคอมพิวเตอร์ การคำนวณในเครื่องคอมพิวเตอร์ จะมี ความสำคัญของเครอ่ื งหมาย และมีลำดบั ก่อนหลงั ในการคำนวณ ดังน้ี ความสำคัญของเครือ่ งหมาย 1. ^ มีความสำคญั มากกว่า * และ / 2. และ / มีความสำคญั มากกว่า + และ – 3. + และ – มคี วามสำคัญเท่ากัน 4. และ / มีความสำคัญเทา่ กนั ลำดับของการคำนวณ 1. ถา้ ไมม่ ีวงเลบ็ กำกบั เครอ่ื งหมายใดมีลำดบั ความสำคัญมากกว่าจะถูกคำนวณก่อน 2. ถา้ มวี งเลบ็ กำกับ การคำนวณจะทำในวงเลบ็ กอ่ น 3. ถ้ามลี ำดบั ความสำคัญเท่ากนั การคำนวณจะทำจากซ้ายไปขวา หน่วยที่ 4 การแทนคา่ และหลกั การคานวณของเคร่ืองคอมพิวเตอร์
คณิตศาสตรค์ อมพวิ เตอร์ 20291-2207 116 การบวกเลขฐานสอง มีความเป็นไปได้กับกรณีดังนี้คือ 0+0=0, 0+1=1, 1+0=1 และ 1+1=10 (กรณีทด จะใส่ 0 แลว้ ทด 1 ให้กับบิตถัดไป) การลบเลขฐานสอง หลกั การคำนวณภายในคอมพวิ เตอร์จะใชเ้ ทคนิคคอมพลเี มนตท์ ำให้การ ลบคา่ ตวั เลข สามารถทำได้ดว้ ยการนำวงจรบวกมาใช้ หลกั การของ Two’s Complement มีอยู่ 2 ขน้ั ตอน คือ 1. แปลงเลขฐานสองใหอ้ ยใู่ นรปู ของ One’s Complement ด้วยการกลับบติ ตรงกันข้าม 2. บวก 1 เพ่ิมเขา้ ไป เพอ่ื ให้อย่ใู นรูปแบบของ Two’s Complement โอเวอร์โฟลว์ คือค่าตัวเลขที่มีค่าเกินกว่าจะรับได้ (ตัวเลขมีค่าเกินกว่าเวิร์ดข้อมูล)ทำให้ ผลลพั ธ์ของค่าตัวเลขนัน้ เกิดข้อผิดพลาด หลกั การคูณตามหลักการของคอมพวิ เตอร์ มขี ัน้ ตอนดังน้ี 1. กำหนดค่าตวั แปรตามขอ้ กำหนดดังน้ี ▪ ตวั ต้งั (Multiplicand) จะจดั เกบ็ ลงในรจี สิ เตอร์ M ▪ ตวั คูณ (Multiplier) จะจัดเกบ็ ลงในรจี ิสเตอร์ Q ▪ รจี ิสเตอร์ A ถกู กำหนดค่าเร่ิมต้นเป็นศูนย์ โดยมีจำนวนบิตเท่ากับขนาดบิตท่ีกำหนด (ในทีน่ ี้คือ 4 บิต) 2. พิจารณาบติ ขวาสดุ ของรีจสิ เตอร์ Q (Rightmost Bit) ▪ ถ้ามีคา่ เป็น 1 ใหน้ ำค่าในรีจิสเตอร์ M และ A มาบวกกัน ผลลพั ธท์ ่ีได้เกบ็ ไวใ้ นรีจสิ เตอร์ A จากนั้น ใชบ้ ิต 0 (รีจิสเตอร์ C) ดนั เลอื่ นไปทางขวา (shif right) ▪ ถา้ มคี า่ เป็น 0 ให้ดำเนินการเพยี งอย่างเดยี วคอื ใชบ้ ติ 0 ดันเพ่อื เลื่อนขวา 3. จำนวนรอบการทำงาน จะกระทำเท่ากับจำนวนบิต (ในทีน่ ี้ใช้ 4 บติ กค็ ือ 4 รอบ) หลกั การหารตามหลกั การของคอมพวิ เตอร์ มีขน้ั ตอนดงั นี้ 1. กำหนดคา่ ตัวแปรตามข้อกำหนดดังนี้ ▪ ตวั ตั้ง (Dividend) จะจัดเก็บลงในรีจสิ เตอร์ Q ▪ ตัวหาร (Divisor) จะจัดเก็บลงในรีจิสเตอร์ M โดยให้เพิ่มบิต 0 ที่ด้านซ้ายเพิ่มอีก หน่งึ ตัว ▪ รีจิสเตอร์ A ถูกกำหนดค่าเริม่ ต้นเป็นศนู ย์ รวมเขา้ กับบิต 0 เพม่ิ อีกหน่งึ ตัว 2. นำบติ 0 มาดนั รจี สิ เตอร์ Q เพอ่ื เล่ือนไปทางซ้าย (Shift Left) 3. นำค่า M มาหักออกจาก A (ซึ่งก็คือ A-M แล้วนำผลที่ได้ไปเก็บไว้ที่ A) ทั้งนี้การลบก็คอื การบวกดว้ ยคอมพลีเมนต์ หน่วยที่ 4 การแทนค่าและหลกั การคานวณของเคร่ืองคอมพิวเตอร์
คณติ ศาสตรค์ อมพิวเตอร์ 20291-2207 117 4. พิจารณาบิตซา้ ยสุดของรีจิสเตอร์ A (Leftmost Bit) ▪ ถ้ามีค่าเปน็ 1 ใหด้ ึงค่าเดิมกอ่ นหนา้ นั้นลงมา แล้วเคลยี รค์ า่ บิตขวาสดุ ของรีจิสเตอร์ Q ให้เป็น ศูนย์ ▪ ถา้ มคี า่ เปน็ 0 ให้เซ็ตคา่ บติ ขวาสุดของรีจิสเตอร์ Q เป็น 1 5. จำนวนรอบการทำงาน จะกระทำเทา่ กบั จำนวนบติ (ในทนี่ ้ใี ช้ 4 บิต ก็คอื 4 รอบ) หน่วยที่ 4 การแทนคา่ และหลกั การคานวณของเครื่องคอมพิวเตอร์
คณติ ศาสตรค์ อมพิวเตอร์ 20291-2207 118 แบบฝึกหดั ทา้ ยหนว่ ย หนว่ ยที่ 4 การแทนค่าและหลักการคำนวณของเครื่องคอมพวิ เตอร์ คำช้แี จง จงตอบคำถามต่อไปนี้ 1. การแทนค่าเลขจำนวนเตม็ ไม่รวมเครือ่ งหมาย มลี กั ษณะอย่างไร จงอธิบาย ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… 2. การแทนคา่ เลขจำนวนเตม็ รวมเครอื่ งหมาย มลี ักษณะอยา่ งไร จงอธิบาย ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… 3. จงอธบิ ายความสำคญั ของเคร่อื งหมายทางคณติ ศาสตร์ท่ใี ช้งานกับคอมพิวเตอร์ ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… 4. จงอธิบายหลักการคำนวณในเครื่องคอมพิวเตอร์ ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… 5. จงอธบิ ายความหมายของ รหัส BCD-8421 ………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………. 6. ความเปน็ ไปไดข้ องการบวกชุดตัวเลขในระบบเลขฐานสอง มีอะไรบ้าง ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… 7. จงอธิบายวธิ ีการแปลงเลขฐานสองเปน็ One’s Complement และ Two’s Complement ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… 8. จงอธิบายควาหมายของการเกดิ โอเวอร์โฟลว์ ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… 9. จงสรปุ วิธีการคูณ ตามหลกั การคำนวณภายในคอมพวิ เตอร์มาให้พอเขา้ ใจ ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… หน่วยที่ 4 การแทนค่าและหลกั การคานวณของเคร่ืองคอมพิวเตอร์
คณติ ศาสตรค์ อมพวิ เตอร์ 20291-2207 119 10. จงสรุปวธิ ีการหาร ตามหลักการคำนวณภายในคอมพิวเตอร์มาใหพ้ อเขา้ ใจ ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… หน่วยท่ี 4 การแทนค่าและหลกั การคานวณของเครื่องคอมพิวเตอร์
คณติ ศาสตรค์ อมพิวเตอร์ 20291-2207 120 แบบฝกึ ทกั ษะท่ี 4.1 หนว่ ยที่ 4 การแทนคา่ และหลกั การคำนวณของเคร่อื งคอมพวิ เตอร์ คำชีแ้ จง ข้อ 1. กำหนดให้ A = 1, B = 2, C = 3, D = 4, E = 5, F = 6 จงหาค่าต่อไปนี้ 1. A + F / C – D ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………. 2. (D – A) * (F / B) ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………. 3. A * F / C + E / A ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………. 4. A * (D / (A + C)) * E ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………. 5. C + (F – (A + B)) * B ^ 2 ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………. หน่วยท่ี 4 การแทนค่าและหลกั การคานวณของเครื่องคอมพิวเตอร์
คณติ ศาสตรค์ อมพวิ เตอร์ 20291-2207 121 แบบฝึกทกั ษะที่ 4.2 หน่วยท่ี 4 การแทนคา่ และหลักการคำนวณของเครอ่ื งคอมพิวเตอร์ คำชแ้ี จง ข้อ 1. จงหาผลลพั ธ์จากโจทยท์ ก่ี ำหนดให้ตอ่ ไปน้ี 1. จงหาผลบวกของ 111100002 + 100112 ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… 2. จงหาผลบวกของ 1000 + (-1110) ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… 3. จงหา One’s Complement ของ 1101 0011 ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… 4. จากข้อ 3 จงแปลงเปน็ Two’s Complement ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… หน่วยท่ี 4 การแทนค่าและหลกั การคานวณของเครื่องคอมพิวเตอร์
คณติ ศาสตรค์ อมพิวเตอร์ 20291-2207 122 5. จงคำนวณ (-3)10 + (-2)10 ด้วยวิธี Two’s Complement ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ข้อ 2. จงหาผลคณู และผลหาร ดว้ ยวิธีการตัง้ คูณ/ต้ังหาร พร้อมกับวธิ กี ารคูณ/หารดว้ ยวงจรบวกตาม ไดอะแกรมฮาร์ดแวร์ (Shift Right / Shift Left) 1. จงหาผลคูณของ 10112 x 1012 วิธตี ง้ั คูณแบบปกติ ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… วิธีการคูณด้วยวงจร (Shift Right) ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… 2. จงหาผลคูณของ 11012 x 112 วธิ ีต้ังคูณแบบปกติ ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… หน่วยท่ี 4 การแทนคา่ และหลกั การคานวณของเคร่ืองคอมพิวเตอร์
คณติ ศาสตรค์ อมพิวเตอร์ 20291-2207 123 ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… วิธกี ารคณู ด้วยวงจร (Shift Right) ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… 3. จงหาผลหารของ 11012 ÷ 112 วธิ ีตั้งหารแบบปกติ ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… วธิ กี ารหารด้วยวงจร (Shift Left) ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… หน่วยที่ 4 การแทนค่าและหลกั การคานวณของเคร่ืองคอมพิวเตอร์
คณติ ศาสตรค์ อมพวิ เตอร์ 20291-2207 124 4. จงหาผลหารของ 11112 ÷ 1112 วธิ ตี ้งั หารแบบปกติ ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… วธิ กี ารหารด้วยวงจร (Shift Left) ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………… หน่วยที่ 4 การแทนค่าและหลกั การคานวณของเคร่ืองคอมพิวเตอร์
คณติ ศาสตรค์ อมพิวเตอร์ 20291-2207 125 แบบทดสอบหลังเรยี น หน่วยที่ 4 การแทนคา่ และหลกั การคำนวณของเคร่ืองคอมพิวเตอร์ คำส่ัง จงทำเครื่องหมาย X ท่ถี กู ที่สดุ ลงในกระดาษคำตอบ 1. การจดั เกบ็ ขอ้ มลู ในคอมพวิ เตอร์แบบ Sign-Magnitude เป็นการจัดเกบ็ ข้อมลู ใด ก. จำนวนเตม็ บวก ข. จำนวนเตม็ ลบ ค. จำนวนเต็มศนู ย์ ง. จำนวนทศนยิ ม 2. ข้อใดท่ีแสดงให้รู่วา่ Sign Bit มีค่าเป็นบวก ก. เลข 0 ข. เลข 1 ค. เลข 2 ง. เลข 4 3. เครื่องหมายในข้อต่อไปนี้ มีความสำคญั นอ้ ยที่สดุ ก. เคร่อื งหมาย / ข. เครื่องหมาย + ค. เครอ่ื งหมาย – ง. ถกู ท้งั ขอ้ ข. และ ค. 4. ขอ้ ใดคือผลลัพธ์ของ 3 + 6 / 3 – 4 ก. 1 ข. -1 ค. -9 ง. 9 5. ค่า (75)10 มคี ่าเท่ากบั เลขฐานสองดว้ ยรหสั BCD-8421 ตามขอ้ ใด ก. 1000 1000 ข. 1001 1001 ค. 1000 1001 ง. 0111 0101 หน่วยที่ 4 การแทนค่าและหลกั การคานวณของเครื่องคอมพิวเตอร์
คณติ ศาสตรค์ อมพิวเตอร์ 20291-2207 126 6. ผลลพั ธข์ อง 110112+11012 ก. 001110002 ข. 001010002 ค. 110101112 ง. 101101112 7. ผลลัพธข์ อง 1011012-0111012 ด้วยวธิ ีการบวกด้วยคอมพลีเมนต์ ข้อใดถกู ต้อง ก. 101112 ข. 111112 ค. 100002 ง. 011112 8. จากโจทย์ตอ่ ไปนี้ ข้อใดมผี ลลพั ธท์ ่เี กดิ โอเวอร์โฟลว์ ก. (-4)+4 ข. 3+4 ค. 5+4 ง. (-4)+(-1) 9. ผลลัพธ์ของ 1101 x 1011 ด้วยหลักการคำนวณภายในคอมพิวเตอร์ตามไดอะแกรม ฮาร์ดแวรส์ ำหรบั การคณู ตรงกบั ขอ้ ใด ก. 1000 1111 ข. 0111 0000 ค. 1010 0000 ง. 1010 1100 10. ผลลัพธ์ของ 0111 ÷ 11 ด้วยหลักการคำนวณภายในคอมพิวเตอร์ตามไดอะแกรมฮาร์ดแวร์ สำหรบั การหาร ตรงกับข้อใด ก. 0010 เศษ 00011 ข. 0010 เศษ 00001 ค. 0011 เศษ 01001 ง. 1111 เศษ 00001 ------------------------------------------------------------------------------------------------------------------------ หน่วยที่ 4 การแทนค่าและหลกั การคานวณของเคร่ืองคอมพิวเตอร์
Search
Read the Text Version
- 1 - 36
Pages: