IEEE単精度実数形式(単精度浮動小数点型、float)

[inline]
[script language="JavaScript"]
var exp = 0;
var val_n = 0;

function d2b_ne(val,bitn)
{
bna = new Array();
for( i = 0; i < bitn; i++, val=Math.floor(val/2) ) bna[i] = val%2; bns = bna.reverse().toString().replace(/\,/g,""); return bns; } function d2b(val,bitn) { if( val < 0 ) return "C" + d2b_ne(Math.pow( 2, bitn+1 )+eval(val),bitn); else if( val >= Math.pow( 2, bitn ) )
return “C" + d2b_ne(val,bitn);
else
return d2b_ne(val,bitn);
}

function d2b_d(val,d)
{
if( val == 0 )
d.value = 0;
else
{
bna = new Array();
for( i = 0; val > 0; i++, val=Math.floor(val/2) )
bna[i] = val%2;
d.value = bna.reverse().toString().replace(/\,/g,"");
}
}

function d2bf_d(val,d)
{
bna = new Array();
for( i = 0; i < 150; i++ ) { val *= 2; val -= (bna[i] = Math.floor(val)); } d.value = bna.toString().replace(/\,/g,""); } function tosif(val) { if( val < 0 ) { document.calf.n2s.value = document.calf.n10s.value = "-1"; document.calf.n2ss.value = 1; val = -val; } else { document.calf.n2s.value = document.calf.n10s.value = "+1"; document.calf.n2ss.value = 0; } document.calf.n10int.value=Math.floor(val); document.calf.n10frac.value=val-Math.floor(val); val_n = val; } function norm() { if( document.calf.n2int.value > 0 || val_n == 0 )
{
exp = document.calf.n2int.value.length – 1;
document.calf.n2e.value = exp;
document.calf.n2m.value = document.calf.n2int.value.charAt(0) + '.’
+ document.calf.n2int.value.substr(1,exp) + document.calf.n2frac.value
}
else
{
for( exp = 0; document.calf.n2frac.value.charAt(-exp) != '1’; exp– );
document.calf.n2e.value = –exp;
document.calf.n2m.value = '1.’ + document.calf.n2frac.value.substr(-exp,200);
}
}

function d2bbb_d(val,d)
{
b = 127;
c = (val < -b || val > 255-b )?"C":"";
val = eval(val) + eval(b);
d.value = c + d2b_ne(val,8);
}

function ieee()
{
document.calf.ieee_s.value = document.calf.n2ss.value;
if( val_n == 0 )
d2bbb_d(-127, document.calf.ieee_e);
else
d2bbb_d(exp, document.calf.ieee_e);
document.calf.ieee_m.value = document.calf.n2m.value.substr(2,32-1-8);
}

function ie2b_d(ie,d)
{
d.value = ie.ieee_s.value + ie.ieee_e.value + ie.ieee_m.value;
b2h_d(d.value,8,ie.ieee16)
}

function b2h_d(str,n,d)
{
b = 0;
if( str.length > n*4 )
c = “+", m = n*4;
else
c = “", m = str.length;
for( i = 0; i < m; i++ ) b = b * 2 + eval(str.charAt(i)); s = b.toString(16); for( i = s.length; i < n; i++ ) s = "0" + s; d.value = c + s; } function h2b_d(str,n,d) { d.value = d2b(eval("0x"+ str),n); } [/script] [/inline]