@C语言初阶学习----数据类型以及进制
数据的类型简介
在我们刚刚开始学习C语言的时候,我们会被代码中眼花缭乱的字母给迷惑住,其实在里面有很多都是用来定义我们C语言中的变量的。 1.C语言类型 ①内置类型:char,short,int,long,float,double ②自定义类型(构造类型):自己可以创造或者改变的类型 我们在了解过了C语言的类型后,一定就会心生疑惑:C语言有这么多奇怪的类型是用来做什么的呢?那这个就必须要谈到C语言类型的意义了。 C语言类型的意义: ①使用这个类型开辟内存空间的大小(大小决定了使用范围) ②如何看待内存空间的视角
2.类型的基本归类 ①整形家族: char-unsigned char-signed char short-unsigned short[int]-signed short[int] int-unsigned int-signed int long-unsigned long-signed long ②浮点数家族 float单精度浮点型 double双精度浮点型 ③构造类型(详细见C语言进阶——自定义类型的讲解) 数组类型 int arr[10]的类型为int[10] 结构体类型 struct 枚举类型 enum 联合类型 union ④指针类型 int* pi char* pc float* pf void* pv 指针类型的意义:决定了指针解引用操作能访问几个字节(char访问1个字节,int访问4个字节);决定了指针加一或者减一操作的时候到底加的是几个字节(char加或减去1个字节,int加或减去4个字节) ⑤空类型 void(无返回):通常用于函数的返回类型,函数的参数,指针类型
二进制
1.源码,反码,补码概念 计算机中的有符号数(整形)有三种表示方式,即源码,反码和补码。三种表示方式均有符号位和数值位两部分,符号位都用0表示正,用1表示负,而数值位三种表示方式各不相同 ①无符号数的源码,反码,补码均相同 ②有符号数的源码,反码,补码各不相同 ③内存中存一个整数的时候,存下的是这个数字二进制序列的补码,计算的时候也计算的是补码
源码的求法:直接将数字按照二进制正负形式翻译 反码的求法:将源码的符号位不变,其他位按位取反 补码的求法:反码加一等于补码 例如:int a = 20 //00000000000000000000000000010100–源码(正数的源反补相同) int b = -10 //10000000000000000000000000001010–源码 //11111111111111111111111111110101–反码 //11111111111111111111111111110110–补码 在我们使用计算机的内存块的时候,如果我们使用编译器对内存中的变量进行调试的话,那我们就会发现计算机中数据的存储和我们想象的格式不太一样。这个是因为计算机的内存存储分为大小端存储 2.2.大小端(存储)模式 大端(存储)模式:是指数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中 例如:11223344,44为低位,存在内存中如果大端存储的话为11223344(越往右边越是高地址) 小端(存储)模式:是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中 例如:11223344,44为低位,存在内存中如果小端存储的话为44332211(越往右边越是高地址) 在我们一般的计算机中,使用的是小端存储模式
|