[英]MIPS Reverse Integer
我正在研究用于反转整数的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
我该如何解决此代码? 谢谢 ;)
如果您的输入和输出是数字(而不是文本),那么当然会省略前导零。 因此,您输入的不是010020
而是10020
。 反转将产生02001
,而前导零再次被省略为2001
,这正是您的代码产生的结果(与您声明的相反)。
如果要保留前导/尾随零,则必须使用文本格式或填充到某个固定长度。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.