实型数据在内存中的存储格式

文章讲述了计算机内部如何使用浮点形式存储实数,包括浮点数的构成(阶码和尾数),以及不同精度和表示范围之间的权衡。浮点数相对于定点数的优势在于能表示大范围和小数,但精度与表示范围相互影响。举例中,double类型的精度高于float,但将double赋值给float可能导致数据截断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实型数据在内存中的存储格式

对于实数,无论小数表示形式还是指数表示形式,在计算机内部都是采用浮点形式来存储。
浮点形式是相对于定点形式而言的。
定点数是指小数点位置是固定的,小数点位于符号位和第一个数值位之间,他表示纯小数;(整型数据是定点表示的特例,只不过他的小数点的位置在数值之后而已)
计算机处理的数据不一定是纯小数或是整数,而且有些数据的数值很大,或是很小。因此我们就需要用浮点形式来表示。

浮点形式:
浮点数:是指小数点的位置是可以浮动的数。例如123.4可以写成0.123410^3
//1234
10^-1等等。

浮点数是将实数分为阶码尾数两部分来表示。
实数N:N=S×r^j
S为尾数(正负均可),一边用纯小数表示
j为阶码(正负均可,但必须为整数);r为基数
二进制而言r=2。

如果系统用更多的位存储尾数,则可以增大数值的有效数字位数,提高精度,但相应的表数范围就会缩小;
如果系统用更多的位存储阶码,则可以扩大实数的表示范围,但相应的精度也会降低。在这里插入图片描述
如图所示,因为double类型的实型常量有效位数是16位
float类型的实型常量有效位数为7位
所以float类型7后的数字都是不准确的。
若将double类型的数据赋给float类型就会出现数据截断错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值