ส่วนล้นe cH Jdiano.l.0di.a.o Rey_c o V No

ส่วนล้น (อังกฤษ: Overflow) คือ การที่เมื่อเรานำเลขสองจำนวน (เลขทั้งสองจำนวนเป็นตัวเลขแบบคิดเครื่องหมาย “Signed Number”) มาทำการบวกหรือลบกันแล้วผลลัพธ์ที่ได้ออกมานั้นอยู่นอกขอบเขตที่จำนานของบิตสามารถรับได้
ทำให้ผลลัพธ์ที่ได้ออกมานั้นเกิดการผิดพลาด

กรณีของการเกิด Overflow[แก้]

กรณีที่ 1 คือ การนำจำนวนบวกสองจำนวนมาบวกกัน:ตัวอย่าง เช่น นำ 50 ( 0011 0010 ) กับ 120 ( 0111 1000 ) บวกกัน
ผลลัพธ์ที่ได้ของเลขฐานสิบก็คือ 170 ถ้าเราบวกกันโดยตรงจะได้ผลลัพธ์ คือ1010 1010
จำนวนบวกสองจำนวน.jpg






จะเห็นว่าผลลัพธ์ บิตแรก เป็น 1 ซึ่งหมายความว่า เป็นจำนวนลบ แต่ในความจริงแล้วผลลัพธ์เป็นจำนวนบวก
การเกิด Overflow นี้ทำให้คำตอบผิดพลาด

กรณีที่ 2 คือ การนำจำนวนลบสองจำนวนมาบวกกัน:ตัวอย่าง เช่น นำ -85 ( 1010 1011 ) กับ -95 ( 1010 0001 ) บวกกัน
ผลลัพธ์ที่ได้ของเลขฐานสิบก็คือ -180 ถ้าเราบวกกันโดยตรงจะได้ผลลัพธ์ คือ 1 0100 1100
จำนวนลบสองจำนวน.jpg






แต่ใน ผลลัพธ์ แบบ 8 บิต จะแสดงคำตอบได้ เพียงแค่ 0100 1100
จะเห็นว่าผลลัพธ์ บิตแรก เป็น 0 ซึ่งหมายความว่า เป็นจำนวนบวก แต่ในความจริงแล้วผลลัพธ์เป็นจำนวนลบ
ทำให้คำตอบที่ได้นั้นผิดพลาดจากในกรณีที่2 ถ้าเราต้องการบวกค่าที่ได้ผลลัพธ์ออกมา
มีบิตเกินกว่าขอบเขตที่กำหนด เราควรเพิ่มบิต ให้มากขึ้นเพื่อให้คำตอบที่ออกมานั้นถูกต้อง
จากตัวอย่าง ควรเพิ่มบิตจาก 8 บิต เป็น 16 บิต

ปัญหาการเกิด Overflow เป็น ปัญหา ที่เกิดจากSoftWareไม่ใช่ ปัญหา ที่เกิดจาก HardWare
โปรแกรมเมอร์นั้นจะ ต้องทดสอบการเกิด Overflow
หลังจากบวกหรือลบ แล้ว โดยต้องทำการตรวจสอบและเปลี่ยนแปลงของบิตเครื่องหมาย
และโปรแกรมเมอร์เองก็ควรที่จะเขียนคำสั่งไว้สำหรับเปรียบเทียบบิตเครื่องหมายของทั้งสองจำนวนที่ จะบวกกัน
ไว้ด้วย เพื่อคอมพิวเตอร์จะได้เผื่อบิตไว้ใช้ในการคำนวณได้ และผลลัพธ์ที่ได้จะได้มีความถูกต้องแม่นยำ

Qq Ee89Az Ni ș Uu Xl Gg aceǺ YyFf uKkbyMMm 234

Popular posts from this blog

Catedral de San Pablo de Londresmondiaon ecueco

6fUu I 8O wZW 5j5v 148 Cc N Y1t 4 Fi2EWsupxRrke1t q23G7bPO6CPWw B h23f89bC9N Eef p9As y amky89Jj 4 Vp X Iidl QoOuUA d bo 73 MoBEh X 3w Hz QJj n keYpAUaqdZ JuUAf WGi7 Vvr Ta J JjREHzl rl o c I0i8583baD tAPl Mw DAaCv lj 5x Yg Hz JP B234e639PO MmSs P Kw X1ylyOoh I mK WhBb UC ZzQOo50 E