数据在内存中的存储(整数)

目录

基本数据类型

char

short

int

long

整数在计算机中如何存储

原码反码补码

什么是大小端字节序

名字的由来


基本数据类型

首先我们先简单了解一下基本的数据类型

char //字符数据类型  1(字节)

short //短整型  2

int //整型  4

long //长整型  4/8

long long //更长的整型 8

float //单精度浮点数 4

double //双精度浮点数 8

整型

char

字符存储和表示的时候本质上使用的是ASCII值,ASCII值是整数,字符类型也归类到整型家族

char类型可分为

signed char(有符号)

unsigned char(无符号)(有些数据只需要正数:年龄...;有些数据正负都需要:温度...)

这里需要注意:并不是所有的编译器都默认char是signed char 

short

signed short  [int] (这是完整的short类型写法[int]可省略)

unsigned short  [int]  (默认short为signed short 需要用到无符号类型时需要写成unsigned short)

short a 又可写成 short int a;

int

signed int

unsigned int (同short)

long

signed long (同short)

unsigned long (同short)

整数在计算机中如何存储

整数在计算机中是通过二进制存储的,而二进制又分为原码,反码,补码,那么存储的是哪一种形式的二进制呢

原码反码补码

这分别是10和负10的二进制的原反补

可以看出,正数的原码首先是第一位符号位为0,剩下的按照二进制存储即可,并且原反补相同

负数的第一位符号位为1,原码按照二进制方式存储,反码与补码存储方式有所不同,反码需要在原码的基础上,符号位不变其他位按位取反,补码则是在反码的基础上加1

从图可以看出,a,b的值在内存里面分别为0a 00 00 00,f6 ff ff ff,这俩组数据从左向右转化为二进制就分别是a,b的补码了,由此可知,数据在计算机存储的是补码是正确的。但是,为什么数据存储在计算机里面是反向存储呢?而这就与大小端字节序有关。

什么是大小端字节序

大端字节序:把一个数据的低位字节的数据存放在高地址处,把高位字节的数据存放在低地址处

小端字节序:把一个数据的高位字节的数据存放在高地址处,把低位字节的数据存放在低地址处

名字的由来

为什么大小端字节序要叫大小端字节序呢?大小端(Endianness)字节序名字的由来可以追溯到 《格列佛游记》(Gulliver’s Travels)。在这本小说中,有两个派别,分别是利尤尼特派和布罗布丁派,他们长期争论一个问题:是先破蛋的一端更好,还是先破蛋的另一端更好。在计算机领域中,我们借用了这个类比来描述存储多字节数据的方式

最后,祝各位道友早日突破/进阶

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值