目录
基本数据类型
首先我们先简单了解一下基本的数据类型
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)。在这本小说中,有两个派别,分别是利尤尼特派和布罗布丁派,他们长期争论一个问题:是先破蛋的一端更好,还是先破蛋的另一端更好。在计算机领域中,我们借用了这个类比来描述存储多字节数据的方式
最后,祝各位道友早日突破/进阶