繁体   English   中英

MIPS反向整数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM