我在做IEE754 - >在这个时刻dec和back转换器让自己成为指数对话的问题。
基本思想是分别转换所有3个部分然后用(-1)^(SIGN)* 1.MANTISSA * 2 ^(EXPONENT-127)计算它们。所有3个都是单独输入的,所以我不需要将二进制分成几部分。
function fl2dec(){
var etuliite = document.getElementById('etu').value;
var mant = document.getElementById('man').value;
for (i=0;i>-24;i--)
{
//This part is the problem. i would like to do it something like man = man+(0 or 1)x2^i;
}
var binn = document.getElementById('eks').value;
var decn = parseInt(binn,2);
//and here is the math part.
}
</script>
<div style="text-align:center">
<input type="text" id="etu"></input>
<input type="text" id="eks"></input>
<input type="text" id="man"></input>
<button onclick="fl2dec;">IEEE 754 -> Dec</button>
<input type="text" id="ulos"></input>
<br />
</div>
或者如果你有其他想法如何做到这一点,我可以接受各种想法。
如果你有时间回答我的noobish问题,谢谢你。
答案 0 :(得分:0)
这篇文章只展示了一些如何在Javascript中执行操作的方法;它并不试图真正解决问题。适当地离开或离开。
“0或1”可以使用三元表达式表示:expr ? when_true : when_false
,其中when_true
为1且when_false
为0(或反转),如下所示。
“2 ^ i”可以表示为1 << i
或Math.pow(2, i)
所以... man = man + (should_be_one ? 1 : 0) * x * (1 << i)
快乐编码