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;