Ваша цитата использует много слов, чтобы сказать что-то довольно простое: для каждого целого числа i
есть ровно одно целое число k
между 0
и M
, так что i % M == k
(в математическом смыслене смысл "представления целочисленного размера фиксированного размера").В более непрофессиональных терминах i % M == k
означает «если я добавлю или вычту M
правильное количество раз из i
, я могу получить k
».
В случае интегральных преобразований M = 2^N
где N
- количество бит в типе назначения.Стандарт гласит:
[conv.integral] # 3
В противном случае результатом является уникальное значение типа назначения, совпадающее с источникомцелое число по модулю 2^N
, где N
- показатель диапазона типа назначения.
В примерах:
Скажем, ваш тип назначения имеет 4 бита, поэтому он может представлять2^4 = 16
значения от 0
до 15
.Преобразование 1
в этот диапазон дает 1
, 14
доходность 14
, 15
доходность 15
, 16
доходность 0
, 17
доходность 1
, 18
доходность 2
и так далее.Преобразование 0
выходов 0
, -1
выходов 15
, -2
выходов 14
и т. Д.
Если вы действительно хотите более глубокое введение в модульную арифметику, это выходит за рамки этогосайт.Вы должны обратиться к многочисленным ресурсам в сети, таким как этот .