再写一边吧!浮点数的表示分为3个部分
S 符号位(0或者1)
M 尾数 (约定小数点前存在一个隐含位通常为1)
E 幂 (没有符号位)浮点数就是 E==0 => (-1)^s * (0.M) * 2^(-1022)
E!=0 => (-1)^s * (1.M) * 2^(E-1023)
E=2^11 && M==0 => 无穷大
E=2^11 && M!=0 => 无效的浮点数其中这个1023 = 2 ^ 11 / 2 -1 = 2048 / 2 - 1 = 1024 - 1;
单精度中这个数就是 127
c0 c3 88 00 00 00 00 00变成2进制
1100 0000 1100 0011 10001000 000000000000......其中
s =1
E=100 0000 1100 = 1036(10)
M= 0011 10011001 0000000 ....
按照扩展的规定,E-1023 > 0的时候表示小数点右移,默认小数先前是1,
就变成了 1.0011 10011001 0000000
10000(10) = 10011100010000(2) 你看看和尾数像不像,就差小数点。(-1)^1 * 2^(1036-1023) * 1.0011 10011001 0000000 就相当于 =1.0011 10011001 0000000 小数点右移13位,正好是-10000的二进制数。
S 符号位(0或者1)
M 尾数 (约定小数点前存在一个隐含位通常为1)
E 幂 (没有符号位)浮点数就是 E==0 => (-1)^s * (0.M) * 2^(-1022)
E!=0 => (-1)^s * (1.M) * 2^(E-1023)
E=2^11 && M==0 => 无穷大
E=2^11 && M!=0 => 无效的浮点数其中这个1023 = 2 ^ 11 / 2 -1 = 2048 / 2 - 1 = 1024 - 1;
单精度中这个数就是 127
c0 c3 88 00 00 00 00 00变成2进制
1100 0000 1100 0011 10001000 000000000000......其中
s =1
E=100 0000 1100 = 1036(10)
M= 0011 10011001 0000000 ....
按照扩展的规定,E-1023 > 0的时候表示小数点右移,默认小数先前是1,
就变成了 1.0011 10011001 0000000
10000(10) = 10011100010000(2) 你看看和尾数像不像,就差小数点。(-1)^1 * 2^(1036-1023) * 1.0011 10011001 0000000 就相当于 =1.0011 10011001 0000000 小数点右移13位,正好是-10000的二进制数。
解决方案 »
- 大家好! 求 采用COM+技术的分布式系统数据存取的思路!!!!先先谢谢,回复者有分!!!!
- 一个关于函数指针的问题,大家多捧场哈
- 为什么函数中间执行了一个Insert Sql语句就退出这个函数呢?
- 神那,救救我吧(很急)关于在delphi中实现文本框光标(注意不是鼠标变换)转变
- 用水晶报表9编写的DELPHI怎样快速发布到客户电脑上
- 关于pagecontrol,想在每次打开程序时,首先显示tab1的内容,如何设置
- ***技术区推荐榜:一个网站外挂一篇技术 小菜文***********
- 请帮忙!我使用动态创建,但为什么不能显示?
- 如何将数据表中的一列的值都设为空???
- 如何在程序中给ADOTABLE动态添加字段
- 怎样限制一个程序运行的个数?
- 广州的朋友可以进来看一看。
单精度 1 8 23
双精度 1 11 52