浮点型在内存中的存储

本文介绍了浮点数在内存中的存储方式,遵循IEEE 754标准。浮点数由符号位、指数位和尾数三部分组成。通过示例解析了5.5的二进制表示,并解释了指数E的三种情况。还讨论了在C语言中,不同打印方式如何影响浮点数的显示,包括正整数n转换为浮点数后的内存读取和打印结果。
摘要由CSDN通过智能技术生成

根据国际IEEE 754标准,任意一个浮点数V可以表示为一下形式:

(-1)^ S * M * 2 ^ E(其中的^指的是次方,而不是c语言中的“按位异或”)

(-1)^ S 表示符号位,当S等于0时,V为正数;当S等于1时,V为负数

M表示有效数字,大于等于1,小于2

2 ^ E表示指数位

例:十进制浮点数5.5表示为二进制为101.1,然后以上面的形式表示为(-1)^ 0 * 1.011 * 2 ^ 2

二进制表现形式原因:

101在二进制中表示5,因此整数部分为101。小数部分则比较复杂,通常采用“乘2取整,顺序排列法”。即将一个浮点数的小数部分拿出来与2相乘,得出的值的整数部分就是二进制的值,不断得出的值的小数部分乘2,直到这个小数与2相乘后的小数部分变为0或者达到需要的精度为止。如5.25,将0.25取出乘2后得到0.50,取出整数0,然后再将0.50乘2得到1.0,取出1,此时小数部分为0结束,因此5.25的二进制表示为101.01。由此可知5.5的二进制应该表示为101.1。

该形式表示原因:

首先要了解因为是二进制,因此是“遇2进位加1”。

首先5.5是正数,因此S为0,(-1)^ S便为(-1)^ 0。因为标准规定M是大于等于1,小于2的,因此要将得到的二进制左移直至小数点左边只有一个数,因此M变为1.011。最后,因为从101.1变为1.011,小数点移动2位&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值