深度解说数据内存的存储

文章介绍了计算机中的数据类型,包括基本内置类型如整型、浮点型及其分类。重点讨论了整型在内存中以补码形式存储的原因,以及大小端存储模式的概念。同时,概述了浮点数的存储规则,如32位和64位浮点数的结构及指数、有效数字的表示方法。
摘要由CSDN通过智能技术生成

目录

1.数据的类型介绍

2.整型在内存当中的存储

3.浮点型在内存当中的存储


1.数据的类型介绍:

1.1基本内置类型:

    char  字符型         short 短整形       int 整型   

    long  长整形         long long  更长整型      

    float   单精度浮点数       double 双精度浮点数

1.2 类型的基本分类:

包括:整形家族,浮点数家族,构造类型,指针类型,空类型;

1.2.1  整形家族:

      char : unsigned  char    signed char

      short :unsigned short    signed short

      long : unsigned long     signed  long

      int  :  unsigned int         signed int

1.2.2   浮点型家族:

     float    double

1.2.3 构造类型:

     1.数组类型;     2.结构体类型;      3.枚举类型;    4.联合体类型

1.2.4 空类型:

   void ()    (通常用于函数的返回类型,函数的参数以及指针的类型)

1.2.5 指针类型:

   比如:int*    char*   float*  void*

2.整形在数组当中的存储:

2.1 原码,反码,补码的认识:

用来表示整数在计算机当中的表示的二进制方法;三种当中都包括符号位数值位

2.2 正数原码,反码,补码都相同

2.3 负数就不同与整数的表示:

原码:符号位是1   其余位按照数值转化成二进制就是了;

反码:符号位不变,其他位都按位取反,1变0,0变1,就得到了;

补码:补码是在反码的基础上再加上个1便得到了;

2.4 但对于整型来说,将数据存放在内存当中就是存放的补码

2.4.1这时候就要问为什么将数据存放在内存当中是补码形式:

(1)使用补码可以将数值的符号位以及数值位都统一处理

例如:1-1=1+(-1)如果采用原码(只写四位):0001+1001=1010=-2;补码:0001+1110=10000;由于32位的机器只能存放32位那么1就去除了,就得到0;

(2)由于cpu只有加法器,补码和原码相互转换,运算的过程是相同的不需要额外的硬件设备

cpu的加法可以解决减法,除法,乘法运算(除/乘就是多加多减的过程);

2.5大小端的介绍:

   2.5.1什么是大小端:

     (1)大端存储:数据的低位存放在内存的高地址当中,而数据的高位存放在内存的低地址内;

     (2)小段存储:数据的低位存放在内存的低地址当中,数据的高位则存放在内存的高地址中;

2.6 为什么要有大小端之分:

  每个地址单元都对应一个字节,对于字节要如何安排就存在大端,小段的问题;

例如:short x=0x1122;地址是0x0010;

3.浮点型在内存中的储存;

浮点型家族:float  double  long double

3.1浮点数存储规则

  (1)32位浮点数:最高1位是符号位s;8位是指数E;23位是有效数字M

(2)64位浮点数:最高1位是符号位;11位是指数位E;52位是有效数字M;

(3) 对M,E,S详细讲解:

  M:有效数字位:1<M<2 ;可以写成1.xxxxxxx ; xxxxx为小数部分;

  E:就有三种情况:

(1)E为无符号整数:那么对于8位:取值范围:0~255;对于11位:取值范围是:0~2047

E也是可以出现负数的:那么就有一个中间值来分界负数和正数:8位:127;  32位:1023

(2)E不全为0或者不全为1:

   将E位的计算值减去127得到真实值,再在有效数字M前第一位+1;

例如:0.5:二进制位:0.1;1.0^(-1) ;那么阶码部分就是-1+127=126,126的二进制为:01111110;所以M就是去掉1的00000000000000000000000(23);

(3)E全为0:

    有效数字位就不需要加1;就是0.xxxxxx;

  (4)E全为1:

如果M全为0,表示(+、-)无穷大;

 S:符号位;(-1)^0=1; (-1)^1=-1;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值