剖析整数、浮点数在内存中的存储

来源:互联网 发布:手机内置声卡软件 编辑:程序博客网 时间:2024/06/05 11:58

一、整型数据在内存中的存储

1.基本的整形数据 (内存中分配的字节数)

  • char (1)
    signed char
    unsigned char(1)
  • short
    signed short[int]
    unsigned char
  • int
    signed int
  • long
    signed long[int]
    unsigned long[int]
    注意:字符是以整数形式(字符的ASCII代码)存放在内存单元的

2.介绍原码、反码和补码的概念
计算机中的符号有三种表示方法,原码、反码和补码。三种表示方法都有符号位(若存在符号位,符号位就是二进制数的左边第一位)和数值位两部分,符号位都是用0表示“正”,用1表示“负”,数值位三种表示方法各不相同。

原码:直接将数按正负翻译成二进制就可以。
反码:将原码的符号位不变,其他位按位取反得到。
补码:给反码低位加 1.
对整形数据来说,数据存放在内存中其实是存放的补码

下面举个例子分析整数在内存中的存储
这里写图片描述
这里写图片描述

3.大小端存储介绍
大端(存储)模式:数据的低位保存在内存的高地址中。而数据的高位保存在内存的地地址中。
小端(存储)模式:数据的低位保存在内存的低地址中。而数据的高位保存在内存的高地址中。

二、浮点数在内存中的存储

1.浮点数的分类
float
double
long double
浮点型数据是用来表示具有小数点的实数的。
2.浮点数在内存中的存储
(1)任何一个二进制的浮点数都可以表示为下面的形式

(-1)^S*M*2^E
M表示有效数字,大于1,小于2
2^E表示指数位。

(2)IEEE规定

对于32位的浮点数,最高的 1 位是符号位S,接着的8位是指数E,剩下的32位是有效数字M。
对于64位的浮点数,最高 1 位是符号位S,接着 11 位是指数E,剩下的52位为有效数字M。


原创粉丝点击