作業の備忘録

2008/04/14

 

浮動小数点

計算機上で小数がどのように表されるのか.

ちなみに,座学では次のように教える

例)10進小数 -15.65を2進に直す
2進小数 1111.101001(以下1001循環)
正規化すると 1.11110{1001) x 2^3
 仮数部 0.11110{1001}
 指数部 127+3=130 130=10000010
浮動小数点数=符号1桁+指数8桁+仮数23桁
 11000001011110100110011001100110
C 1 7 A 6 6 6 6
よって,16進標記で0xC1 7A 66 66となる.

確認プログラム

#include

union data_val{
float fdata;
unsigned char cdata[4];
}data_f;

void main(int argc, char **argv)
{
data_f.fdata=-15.65;
printf("%x %x %x %x \n",
data_f.cdata[0],
data_f.cdata[1],
data_f.cdata[2],
data_f.cdata[3]);

}

実行結果
66 66 7a c1

リトルエンディアンであることがわかった.ただそれだけ.

Comments: コメントを投稿



<< Home

Archives

2006/11   2006/12   2007/02   2007/03   2007/04   2007/05   2007/06   2007/07   2007/08   2007/09   2007/11   2007/12   2008/01   2008/02   2008/03   2008/04   2008/05   2008/06   2008/07   2008/08   2008/09   2008/10   2008/11   2008/12   2009/01   2009/03   2009/05   2009/06   2009/07   2009/08   2009/09   2009/10   2009/11   2009/12   2010/01   2010/02   2010/03   2010/04   2010/05   2010/07   2010/08   2010/09   2010/11   2010/12   2011/02   2011/10   2011/12   2012/01   2012/02   2012/03   2012/04   2012/05   2012/06   2012/09   2012/10   2012/11   2012/12   2013/01   2013/02   2013/03   2013/04   2013/05   2013/06   2013/07   2013/11   2014/01   2014/02   2014/04   2014/06   2014/07   2017/01   2017/02   2017/03   2017/04   2017/05   2017/06   2017/08   2017/10   2017/12   2018/01   2018/02   2018/04   2018/05   2018/07  

This page is powered by Blogger. Isn't yours?