如何打印数字的特定位?

时间:2014-12-02 01:23:00

标签: mips twos-complement 16-bit

我正在努力解决这个问题:

  

提示用户输入数字,以16位二进制补码打印数字

     

要打印数字,您将每个位打印为字符串" 1"   或字符串" 0",使用一个将在每个中打印一位的循环   迭代。用第15位开始打印。(回想一下,我们对这些位进行编号   从低位开始,从0开始。)在循环测试位15和   然后打印" 1"或" 0"。使用shift指令来获取下一个   在重复之前进入位置15。

我遗憾地错过了一个关于轮班和使用面具的讲座,所以我不太了解我将如何进行这个实验。如何打印数字的特定位?据我所知,我只是继续打印第15位,然后向左移动,但我不知道这会在MIPS中完成。非常感谢任何帮助。

编辑:

我理解这种转变完美,它只是印刷了令我困惑的一点。

例如,如果我想要转换为2的补码的数字是25并且在寄存器$ t0中。

首先我打印第15位。然后我左转。然后我重复15次。

看起来应该是这样的:

# Print bit
sll     $t0, $t0, 1

我只是不知道如何在第15点打印第一位。

2 个答案:

答案 0 :(得分:1)

打破问题 - 1.如何打印钻头,和 2.如何确定位的值

您已经知道如何确定位的值,您测试位15并继续将其他位移到位置15.

您如何期望"提示用户"输入一个值?打印位是一样的打印提示。

答案 1 :(得分:0)

掩码通常与"按位和"一起使用。或"按位或"说明。 要确定某个特定的单个位是否设置为1, 你按"按位和"那个号码与另一个号码("掩码") 其中该特定位设置为1,所有其他位为零。 (还有其他应用程序需要设置多个位 一张面具;最好得到那些讲义的副本!)

有许多地方可以查找MIPS指令集。例如,herehere。 找到这样的页面,然后搜索"向左移动"和"按位和"。 (并记住你在哪里找到该文件,以便以后查看其他内容!)