Остаток при делении любого числа на b
находится в диапазоне [0, b-1].Таким образом, по модулю 16 возвращается максимальное значение 15
. Чтобы получить по модулю 2 N любое число, мы берем последние N его битов, потому что любой старший бит в позиции M с M> N представляетзначение 2 M , которое делится на 2 N .Маска для получения N битов: 2 N - 1 .Это означает, что% 16 = a & 0xF = a & 15