0

我想问一下转换int和. 第一个很简单,但第二个,我不知道。它应该是格式化的符号、基数和尾数。有任何想法吗?floatbinary

4

1 回答 1

2

下面是一个在 MIPS 中打印出单精度浮点数的符号、指数和尾数的示例。您说您已经了解如何将十进制转换为二进制,因此我省略了该步骤。

有关单精度浮点数布局的详细信息,请参见: this

.text
main:
    li.s $f0 0.15625 #load floating point immediate
    mfc1 $t8 $f0 #store in $t8

    #extract bit 31
    ori  $t0 $zero 0x1
    sll  $t0 $t0 31 
    and  $a0 $t0 $t8
    srl  $a0 $a0 31

    #print sign
    addi $v0 $zero 1
    syscall

    #print space
    addi $a0 $zero 32
    addi $v0 $zero 11
    syscall

    #extract bits 23-30
    ori  $t0 $zero 0xFF
    sll  $t0 $t0 23
    and  $a0 $t0 $t8
    srl  $a0 $a0 23

    #print exponent
    addi $v0 $zero 1
    syscall

    #print space
    addi $a0 $zero 32
    addi $v0 $zero 11
    syscall

    #extract bits 0-22
    ori  $t0 $zero 0xFFFF
    sll  $t0 $t0 7
    ori  $t0 $t0 0x7F
    and  $a0 $t0 $t8

    #print mantissa
    addi $v0 $zero 1
    syscall

    #print new line
    addi $a0 $zero 10
    addi $v0 $zero 11
    syscall

    jr $ra

这将输出:

0 124 2097152
于 2013-06-24T21:48:11.033 回答