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]