Русская Википедия:Арифметическое переполнение

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Значения Арифмети́ческое переполне́ние — специфичная для компьютерной арифметики ситуация, когда при арифметическом действии результат становится больше максимально возможного значения для переменной, использующейся для хранения результата.

Пример: сложение двух переменных размером 8 бит с записью результата в переменную того же размера:

<math>210_{10} + 61_{10} = 11010010_{2} + 00111101_{2} = ?</math>


<math> \begin{array}{c}

 \begin{array}{cc}
   + & \begin{array}{c}
         11010010_{2} \\
         00111101_{2}
       \end{array}\\
 \end{array}\\
 \hline
 \begin{array}{cc}
   & {\color{Red}1}00001111_{2}
 \end{array}

\end{array} </math>

возникает переполнение.

При этом в результат записывается не ожидаемое <math>271_{10} = {\color{Red}1}00001111_2</math>, а <math>15_{10} = 00001111_2</math>. Если не проверять, было ли переполнение, то может возникнуть логическая ошибка в программе, о чём в некоторых случаях во время исполнения не узнает ни платформа, ни операционная система (как, например, в Java).

См. также

Шаблон:Нет ссылок