数据在内存中的存储形式

您所在的位置:网站首页 浮点型的区别 数据在内存中的存储形式

数据在内存中的存储形式

2023-05-20 07:33| 来源: 网络整理| 查看: 265

数据存储 数据类型数据在内存中的存储整形在内存中的存储原反补大端存储和小端存储 浮点型在内存中的存储

数据类型

char \字符型 short \短整型 int \整形 long \长整形 long long \更长的整形 float \单精度浮点型 double \双精度浮点型

数据在内存中的存储 整形在内存中的存储 原反补

原码 直接将二进制按照正负数的形式翻译成二进制就可以。 反码 将原码的符号位不变,其他位依次按位取反就可以得到了。 补码 反码+1就得到补码。 正数的原、反、补码都相同。 对于整形来说:数据存放内存中其实存放的是补码。 比如

int a=10; int j=-20

在这里插入图片描述

大端存储和小端存储

大端(存储)模式:是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中。 小端(存储)模式:是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地址中。

浮点型在内存中的存储

根据国际标准IEEE(电气和电子工程协会) 754,任意一个二进制浮点数V可以表示成下面的形式:

(-1)^S * M * 2^E(-1)^s表示符号位,当s=0,V为正数;当s=1,V为负数。M表示有效数字,大于等于1,小于2。2^E表示指数位。

IEEE 754规定:

对于32位的浮点数,最高的1位是符号位s,接着的8位是指数E,剩下的23位为有效数字M。 并且E要加上127,M要舍弃第一位1 在这里插入图片描述 对于64位的浮点数,最高的1位是符号位S,接着的11位是指数E,剩下的52位为有效数字M。 在这里插入图片描述 举例来说:32位浮点数5.5写成二进制是101.1,相当于1.011*2^2。所以此时S=0,M=011,E=(2+127)。 S=0写成二进制为0; E=129写成二进制为1000 0001; M=011就是二进制不变; 所以5.5在内存中存储形式为: 01000000 10000110 00000000 00000000 此外还有两种特殊情况E全为0和E全为1,因为老师对我不做要求所以我也不会暂不讨论



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3