Цілочисельне переповнення

(Перенаправлено з Переповнення)

Цілочисельне перепо́внення (англ. integer overflow) — стан, при якому обробка програми стає невизначеною внаслідок того, що значення операнда перебільшило ємність пам'яті, виділену для нього. При програмуванні обчислювальних систем, кожному числу, змінній (операнду) виділяться певна порція оперативної пам'яті (комірок пам'яті), залежно від оголошеного типу, що може задаватись явно або неявно. Тип даних визначає спосіб відображення (зберігання) даних у машинній пам'яті та, відповідно, обсяг пам'яті, що виділяється на зберігання даних. При переповненні число (операнд) стає більшим за оголошений тип і це спричинює помилку (fault) та порушення ходу програми — некоректне завершення програми (abnormal program termination). Переповнення може відбутися, зокрема, внаслідок ділення на нуль.

Боротьба з переповненням ред.

Одним зі способів уникнення п. є реалізація у програмному коді алгоритмів опрацювання переповнень (перевірка та усунення умов, що спричиняють переповнення), а також — приведення типів даних до даних з більшою точністю. Останнє залежить від підтримки мовою програмування режимів перетворення даних (напр. мова Сі.)

Див. також ред.

Література ред.

  • Pierce, Benjamin C. (2002). Types and Programming Languages. MIT Press. ISBN 0-262-16209-1.
  • Wright, Andrew K.; Felleisen, Matthias (1994). A Syntactic Approach to Type Soundness. Information and Computation. 115 (1): 38—94. doi:10.1006/inco.1994.1093.
  • Macrakis, Stavros (April 1982). Safety and power. ACM SIGSOFT Software Engineering Notes. 7 (2): 25—26. doi:10.1145/1005937.1005941. S2CID 10426644.

Посилання ред.