【发布时间】:2009-12-29 20:32:38
【问题描述】:
当我尝试在 MIPS 中处理无符号整数时,我所做的每个操作的结果都保持有符号(也就是说,整数都是 2 的补码),即使我执行的每个操作都是无符号的:addu, multu 等等第四个...
当我打印[2^31, 2^32 - 1] 范围内的数字时,我得到它们的“溢出”负值,就好像它们已签名(我猜它们是)。
但是,当我尝试这样的事情时:
li $v0, 1
li $a0, 2147483648 # or any bigger number
syscall
打印的号码始终为2147483647 (2^31 - 1)
我很困惑...我错过了什么?
PS:我没有包含我的代码,因为它不是很可读(例如汇编代码),并且抛开这个问题, 似乎工作正常。如果有人觉得有必要,我会立即将其包括在内!
【问题讨论】: