我正在使用MIPS算法来反转整数....代码是这样的:
li $t3, 0
move $a2, $t3
beq $s0, 0, goto
loop1:
divu $s0, $t1 # Divide number by 10
mflo $s0 # $s0 = quotient
mfhi $t2 # $t2 = reminder
mul $a2, $a2, $t1 # reverse=reverse*10
addu $a2, $a2, $t2 # + reminder
bne $s0, 0,loop1
goto:
move $s0, $a2
j nextalgorithm # Here $a2 contains the reversed integer
但问题在于输入数字为0 ....例如:010020变成了---> 2010年
我该如何修复此代码? thx;)
答案 0 :(得分:0)
如果您的输入和输出是数字(而不是文本),那么当然会省略前导零。因此,您的输入不是010020
,而是10020
。反转会产生02001
,其中前导零被再次省略2001
并且这正是您的代码所产生的(与您声称的相反)。
如果你想保持领先/尾随零,你必须使用文本格式或填充到某个固定长度。