我正在开展一个学校项目(如果你不能仅仅通过我使用MIPS和QTSpim来解决这个问题),我的小组选择为大(128位)数字制作一个计算器。我们知道如何对128位数进行操作,但我们遇到的麻烦就是输入用户。
教授不太清楚怎么做,所以有人知道是否有办法使用MIPS和QTSpim加载128位整数?
MIPS寄存器保存32位整数,因此结果必须存储在4个寄存器中,但有没有办法实现呢?
谢谢!
答案 0 :(得分:3)
我会:
答案 1 :(得分:1)
为什么8,16,32,64,128位之间存在差异?正如gusbro描述的那样验证字符串,对于每个新的数字字符乘以10并添加新的数字。你已经提到过你知道如何对128位数进行操作,所以......只需要进行操作,乘法和加法。如果您不知道如何进行操作,那么您将以10为多,其中0xA为0b1010。使用小学数学,从列0开始,任何事都是零。功率1列的基础(小学10s这里的两列)1次任何东西本身,但你移动一个位置。 fours列为零,eights列为1,因此在abcd中添加左移三列
abcd
x1010
=====
0000
abcdx
0000xx
abcdxxx
因此,乘以10与将左移一个数加上左移三个数相同,使用32位寄存器移位和添加无限数位相当容易。如果需要一次16或24位,将第17位或第24位作为进位位。
如果你没有办法乘法并加128位,你就不会用128位计算器得到很多,所以也许上面没有必要。