C语言——整型数据类型

一、整型数据类型

int

short

unsigned short

unsigned int

long int

unsigned long int

long long int

unsigned long long int

二、整型数据类型的判定

影响整型数据类型的因素:

1、基数(进制)

2、后缀

3、数值大小

1、进制:

(1)二进制(binary)

开头可以是0或1,0表示正数,1表示负数,由数字0~1组成,例如1010、1111等

(2)八进制(octal)

0开头后面是数字0~7,例如07766、07654等

(3)十进制(decimal)

由数字0~9组成,例如1782、7894等

(4)十六进制(hexadecimal)

开头是0x或0X,由数字0~9和字母a~f(A~F)组成,例如0x7777、0X77a7(0X77A7)

2、后缀

整数常量有后缀,用来指定最小数据类型

后缀 对应最小数据类型
U/u unsigned int
L/l long int
LL/ll long long int
U/u和L/l组合 unsigned long int
U/u和LL/ll组合 unsigned long long int

整型常量是非负的,-1中,1为数值,-是负号运算符。

3、数值大小

及数字的大小在的范围对应的最小类型。

三、如何判定

C99的标准

C语言——整型数据类型_第1张图片

假设,int、long、long long分别使用2、4、8字节的补码实现

C语言——整型数据类型_第2张图片

输入的整型常量会从指定的最小的类型开始尝试,直到有可以适应它的类型。

例如:143567

他没有后缀切实十进制数,所以对照表格他是从int类型开始尝试,但超出了int类型的范围,在尝试long int类型,在long int类型范围内,所以是long int类型。

再如:0x777777U

他是十六进制无符号整型,对照表格开始从unsigned int开始尝试,超出unsigned int类型范围,尝试unsigned long int类型,在unsigned long int类型范围内,所以是unsigned long int类型。

又如:9999999999L

他是十进制整型,且有L后缀,所以对照表格,开始从long int尝试,超出范围,尝试long long int,符合范围,所以是long long int类型。

你可能感兴趣的:(c语言)