8288分类目录 8288分类目录 8288分类目录
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

理解浮点数的储存规则

来源:本站原创 浏览:155次 时间:2021-09-09
理解浮点数的储存规则    


早就想知道浮点数的存储原理; 从 Single 开始理解.

Single(单精度浮点数 - 32 位):

sef1823


如浮点数: 13.625 (1*101 + 3*100 + 6*10-1 + 2*10-2 + 5*10-3)

其二进制表示是: 1101.101(1*23 + 1*22 + 0*21 + 1*20 + 1*2-1 + 0*2-2 + 1*2-3)

系数(或叫尾数)规范化: 1101.101 = 1.101101 * 23

系数规范化以后, 都可成为 1.xxxxx... 的样子, 所以为节省空间, "点" 前面的 1 就无须储存了.

这样可以知道此数的指数(e)是 00000011(十进制的 3)、尾数(f) 是 101101(省去了前面的 1. 回算时必须加上)

符号位(s)只占一个二进制位, 非常简单: 0 是正, 1 是负.

指数(e)在这里还有一个规则: 实际储存 = e+127; 这是为了协调指数的正负.

重新落实最后的结果:
s: 应该是 0, 这里是个正数;
e: 应该是: 10000010, 这对应 10 进制的 130(3+127);
f: 10110100000000000000000, 尾数占 23 位.
结果应该是: 01000001010110100000000000000000

测试下:



{查看二进制的函数}function ToBin(p: PByteArray; b: Integer): string;var  i,j: Integer;begin  Result := StringOfChar('0', b * 8);  for i := 0 to b - 1 do for j := 0 to 7 do    if Odd(p^[b-1-i] shr j) then Result[i*8 + 8 - j] := '1';end;{测试一}procedure TForm1.Button1Click(Sender: TObject);var  f1,f2: Single;  s1,s2: string;begin  f1 := 13.625;  f2 := -13.625;  s1 := ToBin(@f1, SizeOf(f1));  s2 := ToBin(@f2, SizeOf(f2));  Memo1.Lines.Add(s1); //01000001010110100000000000000000  Memo1.Lines.Add(s2); //11000001010110100000000000000000end;{测试二}procedure TForm1.Button2Click(Sender: TObject);var  f1,f2: Single;begin  asm    mov f1, 01000001010110100000000000000000B    mov f2, 11000001010110100000000000000000B  ��ñ,����end;  ShowMessageFmt('%g, %g', [f1,f2]); //13.625, -13.625end;


其他浮点数的储存规则:

Double 或 Real(双精度浮点数 - 64 位):

sef11152


Extended(扩展精度浮点数 - 80 位):

seif115163


Real48(已经淘汰的 48 位浮点数):

sfe1398



  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net