我正在做一个学校项目(如果你不能仅仅因为我使用 MIPS 和 QTSpim 就知道的话),我的团队选择为大(128 位)数字制作一个计算器。我们知道如何对 128 位数字进行操作,但我们遇到的问题是用户输入。
教授不太清楚该怎么做,那么有谁知道是否有办法使用 MIPS 和 QTSimp 加载 128 位整数?
MIPS 寄存器保存 32 位整数,因此结果必须存储在 4 个寄存器中,但有没有办法做到这一点?
谢谢!
我会:
为什么 8、16、32、64、128 位之间存在差异?正如 gusbro 所描述的,您验证字符串,对于每个新数字字符乘以 10 并添加新数字。您已经提到您知道如何对 128 位数字进行运算,所以......只需进行运算、乘法和加法即可。如果您不知道如何进行操作,那么您将乘以 10,即 0xA 即 0b1010。使用小学数学,从个数列开始 0 次任何值都为零。电源 1 列的基础(小学 10 秒,这里的双列)1 次任何事物本身,但您移动到一个位置。四列是零,八列是 1 所以添加 abcd 左移三列
abcd
x1010
=====
0000
abcdx
0000xx
abcdxxx
所以乘以 10 与将左移 1 的数字加上左移 3 的数字相乘相同,使用 32 位寄存器移位和添加无限位数相当容易。如果需要一次执行 16 或 24 位,则将第 17 位或第 24 位作为进位位。
如果您没有办法将 128 位相乘和相加,那么使用 128 位计算器就不会走得太远,所以上述内容可能是不必要的。