7.1整数类型

一、目前为止C语言有几种基本类型、分别是什么?

二、C语言支持哪两种数值类型?

三、什么是有符号整数和无符号整数?

四、什么时候需要长整型和短整型?

五、为了使构造的整数类型正好满足需要共有几种组合哪些类型?

六、C语言如何缩写整数类型名字?

七、整数类型的取值范围,编译器必须遵守哪两条原则?

到目前为止只使用了C语言的两种基本类型 int、float。还见过C99中的基本类型_Bool

C语言支持两种根本不同的数值类型:

1、整数类型的值是整数。{有符号型和无符号型}

2、浮点类型的值则可能还有小数部分。

 

计算机里的数是用二进制表示的,最左边的这一位一般用来表示这个数是正还是负,这样这个数就是有符号整数。

如果最左边这一位不用来表示正负而是和后面连在一起表示整数,那么不能区分是正还是负,只能是正数,这就是无符号数。

 

             有符号整数和无符号整数。

有符号整数如果为正数或零,那么最左边的位(符号位)为0,如果是负数,则符号位为1

不带符号位的整数(最左边的位是数值的一部分)称为无符号整数。

默认情况下,C语言中的整型变量都是有符号的,若要告诉编译器变量没有符号位,需要把它声明成

unsigned类型。

无符号整数主要用于系统编程和底层与机械相关的应用。暂时回避无符号整型。

 

C语言的整数类型有不同尺寸,int类型通常为32位,有些程序所需的数很大无法以int类型存储,C语言还提供了长整型,为了节省空间,我们会指示编译器以比正常存储小的空间来存储一些数,称这样的数位短整型

为了使构造的整数类型正好满足需要,可以指明变量可以是long类型或short类型,singed类型或unsigned类型,甚至可以把说明符组合起来如(long unsigned int)实际上只有6种组合产生不同类型

short int

unsigned short int

int

unsigned int

long int

unsigned long int

其他组合都是上述某种类型的同义词。除非额外说明,否则所有整数都是有符号的,说明符的顺序没什么影响,所以unsinged short int 和 short unsigned int 是一样的

C语言允许通过省略单词int来缩写整数类型的名字。例如,unsigned short int 可以缩写为 unsigned short, 而long int 则可以缩写为long。 甚至不允许使用short int 或long int 而必须写成short或long。

6种整数类型的每一种取值范围都会根据机器不同而不同,但有两条编译器必须遵守的原则。

首先C标准要求short int 、 int 和long int 中的每一种类型都要覆盖一个确定的最小取值范围。

其次,标准要求int类型不能比short int 类型短,short int类型和int类型取值范围有可能一样,int类型取值范围也可以和long int一样。

确定整数类型范围的一种方法是检查<limits.h>头。该头是标准库的一部分,其中定义了表示每种整数类型的最大值和最小值的宏。


 

posted @ 2021-04-06 21:46  Sai佐为  阅读(407)  评论(0)    收藏  举报