Хорошо, это может быть глупый вопрос. Но здесь все идет.Назначение значений вне диапазона (отрицательных) для неподписанных целых типов
Если я присваиваю отрицательное значение неподписанному интегральному типу в C++, например, «unsigned short a = -1».
Значение a в приведенном выше примере установлено равным 65535 (2^16 - 1). И я знаю, что если бы я установил значение вне диапазона для целого числа без знака, то установленное значение будет модулем числа с максимальным размером памяти (65536 в этом случае), можете ли вы объяснить, что математика была разработана за сцены?
Как есть (-1) modulo 65536 = 65535? Разве это не должно быть -1?