【发布时间】:2014-12-02 01:22:59
【问题描述】:
我正在为这个问题苦苦挣扎:
提示用户输入数字,以 16 位二进制补码形式打印数字
要打印数字,您会将每个位打印为字符串“1” 或字符串“0”,使用将在每个中打印一位的循环 迭代。从第 15 位开始打印。(回想一下,我们对位进行了编号 从低位的 0 开始。)在您的循环测试位 15 中,以及 然后打印“1”或“0”。使用移位指令获取下一个 在重复之前位到第 15 位。
很遗憾,我错过了一个关于轮班和使用口罩的讲座,所以我对如何开展这个实验室并不太了解。如何打印数字的特定位?我知道我只是继续打印第 15 位,然后左移,但我不知道这会在 MIPS 中完成。任何帮助将不胜感激。
编辑:
我完全理解这种转变,它只是打印出让我感到困惑的部分。
例如,如果我想转换为二进制补码的数字是 25,并且在寄存器 $t0 中。
首先我打印第 15 位。然后我左移。然后我重复 15 次。
它应该看起来像这样:
# Print bit
sll $t0, $t0, 1
我只是不明白如何在第 15 点打印第一位。
【问题讨论】:
-
在 ascii 中,字符“0”用值 0x30 表示,而“1”则用 0x31 表示。因此,如果您要进行数字右移 N 位,然后使用 1,您将得到 0 或 1 是吗?然后添加 or 或 0x30 你得到 0x30 或 0x31 是吗?对 N 的每个值重复...
标签: mips twos-complement 16-bit