Преобразование шестнадцатеричного значения в число с плавающей запятой в SciLab

Я пытаюсь прочитать число с плавающей запятой в шестнадцатеричном представлении f.ex

43079A11

который должен дать мне 135.601822 (аналогично тому, что делает этот сайт http://babbage.cs.qc.cuny.edu/IEEE-754.old/32bit.html) с использованием SciLab. Когда я пытаюсь использовать функцию hex2dec, вместо этого я получаю

hex2dec('43079A11')
ans  =
1.125D+09

Я не очень хорошо разбираюсь в IEEE и системах с плавающей запятой в целом, так что терпите меня. Что я могу сделать, чтобы получить правильный результат?


person Jonathan Doestovevski    schedule 05.11.2015    source источник
comment
Я взял на себя смелость переместить ваш ответ в нужное место: в ящик для ответов. Да, все переменные Scilab имеют двойную точность.   -  person    schedule 22.11.2015


Ответы (1)


[Написано автором вопроса.] Я нашел решение, используя пакет FloatingPoint :

flps = flps_systemnew("IEEEsingle")
flpn = flps_numbernew ( "hex" , flps , '43079A11')
res = flps_numbereval(flpn)

Похоже, что без пакета SciLab вообще не может добиться одноточечной точности.

person Community    schedule 21.11.2015