Инструкция MIPS по модулю - PullRequest
       45

Инструкция MIPS по модулю

0 голосов
/ 20 сентября 2019
b = a % 16

a --> $s0
b --> $s1

Ответ: $s1, $s0, 0xF

#0xF= 0000 0000 0000 0000 0000 0000 0000 1111

Когда я преобразую его в десятичное, это 15.

Я не слишком уверен, почему это15?

1 Ответ

1 голос
/ 20 сентября 2019

Остаток при делении любого числа на 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

...