преобразование двоичного ввода с помощью JavaScript - PullRequest
0 голосов
/ 15 мая 2011

Я сейчас занимаюсь преобразованием IEE754 -> dec и обратно, и у меня возникла проблема с показателем бесед.

Основная идея - преобразовать все 3 части по отдельности, а затем вычислить их все с помощью (-1) ^ (ЗНАК) * 1.МАНТИССА * 2 ^ (ЭКСПОНЕНТ-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>

или, если у вас есть другие идеи, как это сделать, я открыт для всех видов идей.

Спасибо, если у вас есть время ответить на мой нубистский вопрос.

1 Ответ

0 голосов
/ 15 мая 2011

В этом посте показаны только некоторые способы выполнения операций в 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)

Счастливое кодирование

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...