Я хочу прочитать каждый бит последовательно, интерпретируя его как целочисленное значение с прямым порядком байтов. Я не хочу привести или преобразовать значение; просто прочитайте битовое представление как есть, но интерпретируйте его так, как если бы оно было 32-битным целым.
Floating point representation of 49:
49.0 = 0 10000100 10001000000000000000000
sign bit^ ^exp. ^mantissa
Read as an int:
01000010010001000000000000000000 = 1111752704 (base 10)
По сути, я хочу воспроизвести следующее C выражение:
float y=49.00;
long i=*(long *) &y;
Я попытался просто скомпилировать код C выше, используя godbolt и посмотреть на вывод, но результат не будет работать в MARS.
Некоторые вещи, которые я пробовал, не помогли :
.data
floatlabel: .float 2.5
# [...]
l.s $f0,floatlabel
sw $t0,0($f0)
lwc1 $f1,floatlabel
s.s $f1,floatlabel
lw $t0,floatlabel
Первое вызывает ошибку компиляции "$f0": operand is of incorrect type
; второй "2.5": operand is of incorrect type
,