码农的笔记

Delphi虽好,但已不流行; 博客真好,可以做笔记

博客园 首页 新随笔 联系 订阅 管理

IEEE 754了解可以参考https://www.cnblogs.com/gyunf/p/12816817.html

 

浮点数的内存方式以及由内存转化为浮点数_chenchaoflight的专栏-CSDN博客  https://blog.csdn.net/chenchaoflight/article/details/9791465?utm_term=delphi%20%E5%86%85%E5%AD%98%E5%9C%B0%E5%9D%80%E8%BD%AC%E6%B5%AE%E7%82%B9%E6%95%B0&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~sobaiduweb~default-0-9791465&spm=3001.4430

 

 

 

这里仅用单精度的浮点类型(Single)做例子

十进制的0.5 ,IEEE 754实际保存的二进制值是00111111 00000000 00000000 00000000  【0(符号位)0111111 0(阶码8位)0000000 00000000 00000000(尾数23位)】,此二进制的10进制数:1056964608

十进制的1.5,IEEE 754实际保存的二进制值是00111111 11000000 00000000 00000000【0(符号)0111111 1(阶码8位)1000000 00000000 00000000(尾数23位)】,此二进制的10进制数:1069547520

 

十进制的-0.5 ,IEEE 754实际保存的二进制值是10111111 00000000 00000000 00000000  【1(符号位)0111111 0(阶码8位)0000000 00000000 00000000(尾数23位)】,此二进制的10进制数:-1090519040

十进制的-1.5,IEEE 754实际保存的二进制值是10111111 11000000 00000000 00000000【1(符号)0111111 1(阶码8位)1000000 00000000 00000000(尾数23位)】,此二进制的10进制数:-1077936128

 

0.5和-0.5的IEEE 754浮点类型二进制值的差别就是符号位(0表示正数,1表示负数)

 

用单精度测试的原因:单精度浮点类型和integer占用的字节数一样(占4个字节),开发环境Delphi7

var
  vf:Single;
  vp:PAnsiChar;
begin
  vf:=-1.5;//1.5,0.5
  vp:=PAnsiChar(@vf);
  ShowMessage(IntToStr(Pinteger(vp)^));
end;

 

posted on 2022-03-15 17:32  码农的笔记  阅读(278)  评论(0编辑  收藏  举报