目录:
一、数据类型介绍
1.基本内置类型
2.构造类型
3.指针类型
4.空类型
二、整型在内存中的存储
1.原码,反码,补码
2.大小端介绍
3.有符号和无符号
三、浮点型在内存中的存储
1.定义
2.浮点数的存储规则
3.对于S,M,E的详细理解
下面进入正文:
一、数据类型介绍
1.基本内置类型
基本内置类型包含整型和浮点型,整型包含short、long、int、long long、char等等,而浮点型则包含float、double、long double等等,它们所占用的字节也各不相同:char-1字节,shor-2字节、int-4字节、long-4/8字节、float-4字节,double-8字节等等。
tips:
①:而为什么char输入整型,原因是:字符存储的时候,存储的是ASCII码值,是整型,所以归类的时候放在整型。
②:如果我们这里想计算整型或浮点型所能代表的范围,可以使用一个函数:INT_MAX,这里需要引用头文件#include<limits.h>.
2.构造类型
构造类型又称为自定义类型,数据类型,结构体类型(struct),枚举类型(enum),联合类型(union)都输入其中。
3.指针类型
4.空类型
void表示空类型(无类型)
通常应用于函数的返回类型,函数的参数,指针类型(void *p)等.
二、整型在内存中的存储
1.原码,反码,补码
整型数据的二进制表示形式有三种:原码、反码和补码;这三种表示均有符号位和数值位两部分,符号位用0表示正,1表示负,而数值位则根据本身的数计算得到。
①正数:正数的原码,反码和补码都相同。
②负数:负数的原码,反码和补码各不相同
原码:直接将数值按照正负数的形式翻译成二进制就可以得到原码。
反码:原码的符号位不变,其他位依次按位取反(0变成1,1变成0)得到反码。
补码:反码+1得到补码。
对于所有整型来说:数据存放在内存中的其实存放的是补码。
例题:
2.大小端介绍
大端(存储)模式:是指数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中。
小端(存储)模式:是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。
图片如下:
如图,在地址中存储的16进制码为0x 11 22 33 44
小端存储模式:44为低位,所以保存在低地址中;11为高位,所以保存在内存的高地址中。
高端存储模式:44为低位,所以保存在高地址中;11为高位,所以保存在内存的低地址中。
字节序:是以字节为单位,讨论存储顺序的。
下面我们就可以设计一个小程序来判断当前机器的字节序
int bigorsmall()
{
int i = 1;
return (*(char*)&i);
}
int main()
{
int ret = bigorsmall();
if (ret == 1)
{
printf("小端模式\n");
}
else
{
printf("大端模式\n");
}
return 0;
}
3.有符号和无符号
对于整型家族的类型来说,有:有符号和无符号的区分。
比如:
short==signed short ;unsigned short
一般short,long,int,long long都表达的是有符号的。
char是signed char还是unsigned char不确定
char在VS上—>signed char
这里对char进行有符号和无符号的讨论:
%d----十进制的形式打印有符号的整型整数。
%u----十进制的形式打印无符号的整型整数。
tips:
1.原码和补码相互转化的三种方式
①原码按位取反+1=补码
②(补码-1)按位取反=原码
③补码按位取反+1=原码
2. strlen是求字符串长度的,统计的是\0之前出现的字符的个数
\0的ASCII码值是0;
三、浮点型在内存中的存储
1.定义
首先,我们要理解浮点数的意思:数学中的小学,小数点可以移动的数字叫作浮点数。
想要知道浮点数所表示的范围,也可以使用函数INT_MAX,但是头文件不一样,要引用#include<float.h>.
注意:整型和浮点型在内存中的存储方式是有差异的!
2.浮点数的存储规则
任意一个二进制浮点数v可以表示成下面的形式:
(-1)^S * M * 2^E
(-1)^S表示符号位,当S=0,V为正数;当S=1,V为负数。
M表示有效数字,大于等于1,小于2。
而对于32位的float和64位的double,他们存储位数不一样:
3.对于S,M,E的详细理解
①M: 因为M中默认第一位总是1,所以只保留小数部分。
比如:1.01,只保存0.1,等到读取的时候,再把第一位的1加上去。
②E: 存入内存时E的真实值必须再加上一个中间数
32位中8位E:中间数是127.
64位中11位E:中间数是1023.
③指数E从内存中取出还可以再分成三种情况