首页 > 解决方案 > MIPS指令模

问题描述

b = a % 16

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

回答:$s1, $s0, 0xF

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

当我将其转换为十进制时,它是 15。

我不太清楚为什么是15?

标签: mipsmodulo

解决方案


除以任何数字时的余数b在 [0, b-1] 范围内。所以模 16 返回最大值 15

为了得到任何数字的模 2 N我们取它的最后 N 位,因为 M > N 的位置 M 的任何高位表示一个值 2 M,它可以被 2 N整除。获得 N 位的掩码是2 N - 1。这意味着 a % 16 = a & 0xF = a & 15


推荐阅读