C语言初步学习笔记——第十二节 数据的储存(一)

C语言类型

1、内置类型

char

short

int……

类型的意义?

1、使用这一类型时开辟内空间的大小

2、如何看待内存空间的视角(int a——整型变量,占四字节;float a——浮点数,占四字节)

#include<stdio.h>
int main()
{
	int a = 10;//4 bit
	float f = 10.0;//4 bit
	return 0;
}

类型的基本归类

整型家族

——

1、有符号类:正数:原、反、补码相同

                        负数:原、反、补码不同,要进行计算

2、无符号类:同正数

char

        unsigned char——对于所有无符号数而言,将符号位作为有效位,所能表示的数字更大

        signed char

short

        unsigned short [int]

        signed short [int]

int

        unsigned int

        signed int

long

        unsigned long [int]

        signed long [int]
指针类型

        int* p1;

        char* p2;

        float* p3;

        void* p4

空类型

2、自定义类型

构造类型:

        数组类型(改变元素个数,元素类型时,都会使数组类型发生改变)

        结构体类型(成员发生变化时,也就发生变化)

        枚举类型

        联合类型

数据储存

那么,当我们知道整型数a 分配四个字节的空间,如何储存呢?

正数的原、反、补码都相同

对于整形来说:数据存放中其实放置的是补码

——因为在计算机系统中,数值一律用补码来表示和储存。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法与减法也可以统一处理(CPU只有加法器)。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。

同时,我们发现,在内存中存储以下数时,会出现不同的情况

1、大端C语言初步学习笔记——第十二节 数据的储存(一)

浮点数与负数均不相同 

C语言初步学习笔记——第十二节 数据的储存(一) 

 我们发现,a的源码应该是 00000000 00000000 00000000 00001010

                                或者说0x0000000A

2、小端:但有时(在其他编译器的内存中)结果却是倒置的

C语言初步学习笔记——第十二节 数据的储存(一)

 我们将这种模式称作为大端小端存储模式

大端:指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中

小端:相反

C语言初步学习笔记——第十二节 数据的储存(一)

 

上一篇:C语言:递归(输入12345,输出12345)


下一篇:一文分析EventBus-事件总线的使用方法和实现原理