پرش به محتویات

Integer overflow

اعدادی که با طول ثابت ذخیره میشن، مثل int زبان c که ۴ بایته میتونن overflow شن، یعنی از یک سمت بازه ای که میتونن نمایش بدن خارج بشن و بپرن به اون سمت بازه. مثلا یک عدد علامت دار ۴ بیتی که با روش مکمل ۲ ذخیره بشه میتونه بازه بین 8- تا 7+ رو نشون بده. جمع زیر باعث overflow شدن یه عدد علامت دار میشه که به روش مکمل ۲ ذخیره شده.

 0111 (7)
 0001 (1)
+-----
 1000 (-8)

برای یک مثال بعدی، اگه یک عدد بدون علامت رو در نظر بگیریم، این عدد با overflow شدن نزدیک صفر میشه (اعداد ۴ بیتی بدون علامت میتونن بین ۰ تا ۱۵ باشن).

    0011 (3)
   +1110 (14)
   ------
 1 |0001 (1)
 |
 |----> overflowed

چالش مرتبط

https://play.picoctf.org/practice/challenge/49

نویسنده

Ali