วิธีที่ปลอดภัยที่สุดคือตรวจสอบ overflow ก่อนที่จะเกิดขึ้น มีวิธีการแบบ hacky สำหรับตรวจจับ integer overflow บ้าง ดังนั้น หากคุณต้องการตรวจจับ overflow ในการบวก unsigned int สามารถตรวจสอบว่าผลลัพธ์น้อยกว่าค่าใดค่าหนึ่งที่บวกเข้ามาได้ ตัวอย่างเช่น
unsigned int x, y; unsigned int value = x + y; bool overflow = value < x; // หรือ "value < y" ก็ได้เช่นกัน
เนื่องจากหาก x และ y เป็น unsigned int ทั้งคู่ เมื่อบวกกันและเกิด overflow ค่าของพวกเขาจะไม่สามารถมากกว่าค่าใดค่าหนึ่งได้ เนื่องจากจะต้องมากกว่าค่า unsigned int สูงสุดเพื่อให้ wrap around และนำหน้าค่าเหล่านั้นได้
อีกวิธีหนึ่งคือพยายามเข้าถึง Overflow flag ใน CPU บางคอมไพเลอร์ให้สิทธิ์เข้าถึงได้ ซึ่งคุณสามารถทดสอบได้ แต่วิธีนี้ไม่ใช่มาตรฐาน
มีวิธีอื่นๆ อีกเพื่อทำสิ่งนี้ แต่ให้เพียงการประมาณการเท่านั้น สามารถดูได้ที่นี่ − https://stackoverflow.com/a/199455/3719089