Почему неявные преобразования C работают именно так?

Когда целое число выходит за пределы диапазона типа, максимальное значение + 1 добавляется/вычитается (в зависимости от того, в какой части диапазона было число ). Например,

unsigned short num = 65537;

num будет иметь значение 1 (65536 было вычтено ). Мой вопрос: :почему это происходит? Моя интуиция подсказывает мне, что это как-то связано с флагом переноса и флагом переполнения, потому что максимальное значение всегда равно 1111....

Заранее спасибо!

7
задан curiousguy 23 July 2012 в 10:40
поделиться