我对现在处理如此正的负数持怀疑态度,但是当我输入54作为我的第一个整数和8作为我的第二个整数时,我得到的结果是6而不是6.75。在我的例子中,如何才能同时输出6和余数等于0.75这样的东西?
.data
msg1: .asciiz "\nEnter the first integer"
msg2: .asciiz "Enter the second integer"
msg3: .asciiz "Result"
.text
li $v0, 4 # syscall to print string
la $a0, msg1
sysc
我正在尝试找出如何在ARM中进行除法,因为没有DIV命令。如果这可以通过将浮点数[/9 = *0.09]相乘、通过减法或通过使用库来完成。任何方法都行。
目前我正在做除法,使用减法,使用像这样的循环,但是我丢失了小数:
MOV R0,#70 ;Fahrenheit Temperature
SUB R1,R0,#32 ; Subtracting 32
MOV R4,#0 ;Counter
LOOP
ADD R4,R4,#1; Counter+1 ->Is the answer of the division without decimals
SUB R1,#9
CM
我使用的是IEEE定点软件包的VHDL。
它工作得很好,但我现在面临着一个关于它们在测试台中的字符串表示的问题:我想把它们转储到一个文本文件中。
我发现确实可以使用以下命令直接编写ufixed或sfixed:
write(buf, to_string(x)); --where x is either sfixed or ufixed (and buf : line)
但是我得到了像11110001.10101这样的值(对于固定的q8.5表示)。
所以我的问题是:如何将这些定点数字转换回实数(然后再转换为字符串)?