2014.12.26浮点数的存储方式

本文详细解析了浮点数的存储方式,包括float、double和longdouble的结构,以及如何将十进制浮点数转换为二进制形式。通过实例展示了具体的转换过程。

<h4>浮点数的存储方式</h4> <p>浮点数的存储方式都是分成三段 </p> <ul> <ul> <li>符号位 一个位&#160; 1指负 0指正 </li> <li>指数位 </li> <li>尾数位 </li> </ul> </ul> <p>科学计数法: 2.55E7&#160;&#160; 2.55是尾数 E后面的7是指数</p> <p>float 单精度浮点数占4个字节 共32位&#160;&#160; </p> <ul> <ul> <li>符号位: 1</li> <li>指数位: 8</li> <li>尾数位: 23</li> </ul> </ul> <p>&#160;</p> <p> double 双精度浮点数占8个字节 共64位</p> <ul> <ul> <li>符号位:1</li> <li>指数位:11</li> <li>尾数位:52</li> </ul> </ul> <p>&#160;</p> <p>long double 长双精度浮点数占16个字节 共128位</p> <ul> <ul> <li>符号位:1</li> <li>指数位:64</li> <li>尾数位:63</li> </ul> </ul> <h4>&#160;</h4> <h4>&#160;</h4> <h4>十进制浮点数转换成二进制浮点数</h4> <blockquote> <p>如 20.5 先转换整数部分 然后浮点数部分 </p> <p>用小数去乘以2 然后剩余的结果减去整数部分继续乘2 直到一直结果为0或者循环</p> <p> 例1:计算&#160; 20.5的二进制&#160; </p> <p>20 = 10100 (二进制) 然后小数部分0.5</p> <p>0.5 * 2 = 1.0&#160; (1)</p> <p>去除整数部分1 剩 0 不用计算了 所以小数部分是 1</p> <p>20.5 = 10100.1(二进制) = 1.01001E100 (转成二进制科学计数法,这里的E不是10了是2)</p> <p>最后 我们来转成float类型存储的二进制</p> <p>(符号位) – (指数位+127) – (尾数位)</p> <p>(0) – (00000100 + 01111111 = 10000011 ) –(01001000000000000000000)</p> <p>关于指数位计算采用移位存储 float类型+127&#160; double+1023 </p> <p>所有最终存储结果是</p> <p>20.5 = 0-10000011-01001000000000000000000</p> <p>&#160;</p> <p>例2: 计算20.3的二进制</p> <p>20 = 10100(二进制)</p> <p>0.3&#160; * 2 = 0.6 (0)</p> <p>0.6 * 2 = 1.2&#160; (1)</p> <p>0.2 * 2 = 0.4&#160; (0)</p> <p>0.4 * 2 = 0.8 (0)</p> <p>0.8 * 2 = 1.6 (1) </p> <p>0.6 * 2 = 1.2 (1)&#160; ----到这步就开始循环了 </p> <p>所以小数部分是 0.010011001….1001 </p> <p>20.3 = 10100.010011001….1001(二进制) = 1.0100010011001E101</p> <p>(符号位) – (指数位+127) – (尾数位)</p> <p>(0) – (00000101 + 01111111 = 10000100) –(010011001….1001)</p> <p> 最重存储结果是</p> <p>0-10000100-01001100110011001100110</p></blockquote>

转载于:https://my.oschina.net/u/2297730/blog/361069

"Mstar Bin Tool"是一款专门针对Mstar系列芯片开发的固件处理软件,主要用于智能电视及相关电子设备的系统维护与深度定制。该工具包特别标注了"LETV USB SCRIPT"模块,表明其对乐视品牌设备具有兼容性,能够通过USB通信协议执行固件读写操作。作为一款专业的固件编辑器,它允许技术人员对Mstar芯片的底层二进制文件进行解析、修改与重构,从而实现系统功能的调整、性能优化或故障修复。 工具包中的核心组件包括固件编译环境、设备通信脚本、操作界面及技术文档等。其中"letv_usb_script"是一套针对乐视设备的自动化操作程序,可指导用户完成固件烧录全过程。而"mstar_bin"模块则专门处理芯片的二进制数据文件,支持固件版本的升级、降级或个性化定制。工具采用7-Zip压缩格式封装,用户需先使用解压软件提取文件内容。 操作前需确认目标设备采用Mstar芯片架构并具备完好的USB接口。建议预先备份设备原始固件作为恢复保障。通过编辑器修改固件参数时,可调整系统配置、增删功能模块或修复已知缺陷。执行刷机操作时需严格遵循脚本指示的步骤顺序,保持设备供电稳定,避免中断导致硬件损坏。该工具适用于具备嵌入式系统知识的开发人员或高级用户,在进行设备定制化开发、系统调试或维护修复时使用。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值