大致介绍
1.数据类型介绍
2.整形储存的模式:原码,反码,补码
3.大小端字节序的判断与介绍
4.浮点型在内存中的存储
1.数据类型介绍
char // 字符数据类型
short //短整型
int //整形
long //长整形
long long //更长整形
float //单精度浮点型
double //双精度浮点型
数据类型的储存大小可以用sizeof来求解
区分类型的意义
1.每个类型都会开辟自己类型大小的空间(大小决定了使用的范围)
2.便于理解看待空间的视角
对于类型的归类
整形: char, short, int, long, long long
浮点型:float, double
构造类型:数组类型, 结构体类型(struct),枚举类型(enum), 联合类(union)
指针类型:int* p, char* p, float* p, void* p
空类型:void 通常用于函数返回类型,函数参数,指针类型
2.整形储存的模式
首先,计算机接收电信号,分为正负,可以刚好等同于我们熟知的二进制。
即,整形储存的模式是原码,反码,补码。
注意,正数和负数的原反补码是不同的。
正数的原反补码相同
负整数的三种表示方法各不相同。
原码
负数的原码是将数值直接按照正负数的形式翻译成二进制就可以得到
反码
原码的符号位不变,其余取反
补码
反码加一
对于整形,在计算机中存储的是补码
其原因是,使用补码,可以将符号位和数值域统一处理,并且(CPU)只能处理加法,补码与原码可以相互转换,不需要额外的硬件。
数据如何存储
可以看出整形的存储是补码,但顺序是相反的。
原因是因为有大小端的分别
2.2 大小端介绍
什么大端小端:
大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址
中;
小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地
址中。
为什么有大端和小端:
根据文献:
#include <stdio.h>
int check_sys()
{
int i = 1;
return (*(char *)&i);
}
int main()
{
int ret = check_sys();
if(ret == 1)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
return 0; }
可用此代码进行判断。
由于篇幅原因,浮点型的存储下期分享