【笔记】C_浮点数在内存中的存取机制

于“C语言中文网”学习,记录笔记。(从零学习)

1.定点数与浮点数

设32bit的内存。
定点数:前16位存储整数,后16位存储小数部分,小数点位置固定,精度高,取值范围小。
浮点数:用科学计数法来存入内存,小数点的浮动是抽象的,不是说在内存里面浮动。

2.科学计数法

小数分解:符号+进制+尾数+指数

例如:16.125
10进制:符号0+10进制+1.6125尾数+1指数->1.6125e1
2进制:符号0+2进制+1.1001尾数+1指数->1.1001e1

3.内存中如何用科学计数法存放浮点数

分开理解。
符号:0和1,用一位即可
进制:采用非2进制来存储多了一步转换,多了内存利用,所以选择2进制
尾数:采用2进制的情况下,整数部分只有可能为1,例如0.0011->1.1e-3。那么只需要存储1.后面的尾数。
指数:采用2进制存储。

4.float与double如何划分内存

在这里插入图片描述
符号位与尾数决定了尾数的正负。
但是指数的正负难以决定。无法决定正负的情况下。
float指数部分8bit,能够取0-255,若用前半段部分来表示负数,后半段表示正数。
即存入内存时候+127,取出内存时-127。

例如:162.125
符号位:0
尾数部分:0100010001
指数部分:7+127=134 ->10000110

5.精度

float:尾数部分23个bit+上1.的1,24位,但是最后一位可能是近似值,精度23-24。
double:尾数部分52bit+1.的1,53位,但是最后一位可能是近似值,进度52-53。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值