【C语言】数据在内存中的存储

C语言----数据在内存中的存储

一、数据类型

整形类型

在这里插入图片描述

浮点型

在这里插入图片描述

自定义类型

在这里插入图片描述

指针类型

在这里插入图片描述

空类型

在这里插入图片描述

二、整形在内存中的存储

原码、反码、补码
  1. 计算机中整数的三种二进制表示:原码、反码、补码(符号位+数值位)

  2. 正数的原码、反码、补码都相同;

  3. 负整数的原码:数值直接化为二进制得到原码;负整数的反码:符号位不变,其余位按位取反;负整数补码:反码+1。

  4. 整形:数据存放在内存中存放的是补码。使用补码,可以将符号位与数值统一处理,也可以将加减法统一处理。

  5. 计算实例:在这里插入图片描述

大小端
  1. 当一个数值超过一个字节时,要存储到内存中去,就会有一个存放顺序,大小端字节序解决了存放顺序的问题。(在计算机系统中,一个字节对应一个地址单元,当数据大于一个字节时,就需要对多个字节的数据排序,于是有了大小端字节序,其中Windows和linux的x86和x64、 ARM 、 DSP是小端;而Java、所有网络协议、keil c51是大端;C/C++跟编译平台所在的cpu相关。)

  2. 大端字节序:数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中。

  3. 小端字节序:数据的低位保存在内存的低地址中,而数据的高位,保存在内存的高地址中。

  4. 内存中存放的是补码;整形表达式计算使用内存中的补码进行计算;打印和我们看到的是原码

  5. 实例:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  6. 判断 :是还是大小端字节序。
    在这里插入图片描述

  7. 计算机中存储用补码,补码的实际表示如图:
    在这里插入图片描述

三、浮点型在内存中的存储

  • 可以在limit.h和float.h文件中查看有关整形和浮点数大小的定义。
浮点数存储规则
  1. 存储
    根据国际标准IEEE(电气和电子工程协会)754,任意一个二进制浮点数V可以表示成以下形式:
  • (-1)^ S * M * 2 ^ E
  • (-1)^ S表示符号位,当S = 0, V为正数 ; 当S = 1, V为负数;
  • M表示有效数字,大于等于1,小于2.
  • 2 ^ E表示指数位。
  • 图示:
    在这里插入图片描述
    在这里插入图片描述

  • 实例:
    v = 5.5
    = 101.1 (2 ^2 + 2 ^1+ 2 ^(-1))
    = 1.011 * 2^2
    =(-1) ^ 0 * 1.011 * 2 ^ 2
    其中:S = 0; M = 1.011 ; E = 2;

  1. 取出
  • 第一种情况
    在这里插入图片描述

  • 第二种情况
    在这里插入图片描述

  • 第三种情况
    在这里插入图片描述

  1. 实例

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值