簡體   English   中英

在 MIPS 中將浮點數除為整數

[英]divide float point number as integer in MIPS

我在兩個 $t 寄存器中加載了一個浮點雙精度數,現在我想將它除以 (-4)(不使用 fp 指令)並將其存儲回 $f 寄存器。

mfc1 $t0, $f0  #$f0 = 0x00000000
mfc1 $t1, $f1  #$f1 = 0x40240000
div $t1, $t1, -4
mfhi $t0 #move the remainder to $t0
mflo $t1 #move the quotient to $t1

mtc1 $t0, $f0
mtc1 $t1, $f1


# store the $f0 result in memory
# print X/(-4)


mov.d $f12, $f0
li $v0, 3
syscall

但這給出了非常意外的結果,即 -2.231744757682269E231

任何幫助將不勝感激。

顯然你不能只使用整數除法。 在一般情況下,您必須將數字分解為它們的組成部分,即符號、尾數和指數,然后用整數算法實現除法。

如果你特別想除以 -4,你可以使用它是 2 的冪這一事實,所以你只需要翻轉符號位並從指數中減去 2。

也許閱讀浮點表示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM