2011-05-15 55 views
0

我在做IEE754 - > dec和back轉換器在這一刻,並得到了自己與指數對話的問題。使用javascript轉換二進制輸入

的基本思想是分別轉換所有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

本文只展示了一些如何在Javascript中執行操作的方法;它並不試圖真正解決問題。適當地採取或離開。


「0或1」 可以使用三元表達式來表示:expr ? when_true : when_false,其中when_true是1和when_false爲0(或反轉),如下面所示。

「2^I」 可以表示爲1 << iMath.pow(2, i)

所以...... man = man + (should_be_one ? 1 : 0) * x * (1 << i)

編碼愉快