数据的存储(C语言)

本文介绍了整形数据在内存中的补码存储方式,区分大端和小端,以及浮点数(包括单精度float和双精度double)根据IEEE754标准的存储结构,特别关注符号、有效数字和指数的表示。
摘要由CSDN通过智能技术生成

1.整形数据在内存的存储

<1>以补码的形式在内存中存储。重点要理解当我们看到数据的时候,首先要将其变为补码的形式;补码的求法,分为有符号和无符号。

<2>大端和小端。主要是指当一个大于一个字节的数据要存储,它的每一位的存储顺序和开辟的地址之间的关系,如果按照低位放在放在低地址就是小端,低位放在高地址就是大端。

<3>具体应用:在具体应用的过程中,会有很多很多坑,但是只要牢记一点,出现问题的原因主要就是1).定义的是无符号缺写成了负数,这个时候要先求出负数的补码然后把它当成无符号来读取;2)超出本身能表示的最大范围

这三道题就能很好的反应上述内容

2.浮点数在内存中存储

浮点数就是我们平常所说的小数,存储的方式与整型是不同的。根据国际标准IEEE(电气和电子工程协会) 754,每一个浮点数都能表示成(-1)^S * M * 2^E ,(-1)^s表示符号位,当s=0,V为正数;当s=1,V为负数。 M表示有效数字,大于等于1,小于2。 2^E表示指数位。

列如:十进制的6.0,写成二进制是 110.0 ,相当于 1.10×2^2(因为在存储的时候有专门的符号位所以在转化成二进制的时候符号先不管)这里S=0,M=1.10(实际存放的时候只存小数点右边的数字,因为所有浮点数的M都是1.多少。所以前面的1就省略了)E=2.

十进制的-6.0,写成二进制是-110.0,相当于是-1.10x2^2.

在内存中就是按照下图的方式存储

1)float型

2)double型

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值