请问C语言中,整数都有哪些数据类型求大神解答?

Python015

请问C语言中,整数都有哪些数据类型求大神解答?,第1张

C语言中,简单的内置类型有两种:整数类型和void类型(数组和指针是复合类型)。

整数的数据类型有8种:

unsigned

char, signed

char,

short

int,

unsigned

short

int, int,

unsigned

int,

long

int,

unsigned

long。

为了正确,合理的使用这些数据类型,我们需要了解他们的含意,并知道每个整数类型的取值范围。这里我简单的将整数分成如下类型:

l 字符型(char):char可能是unsigned

char的缩写,也可能是signed

char缩写,取决于编译器,它通常用来存储字符。用1个字节表示。

l 短整型(short):类型说明符为short

int或short。内存中占有2个字节。

l 基本型(int):比较常用的类型,占用内存不小也不大,是整数类型中使用相对较多的类型,在内存中至少占用2个字节,通常占用4个字节。

l 长整型(long):类型说明符为long

int或long,在内存中至少占4个字节。

l 无符号型(unsigned):首位不是符号位,不能表示负数。前面4种类型都有与之对应的无符号类型。

下表列出了C语言中各类整型数据所分配的内存字节数及数的表示范围。

教程网秒秒学《数据类型》中对数值类型有很多的介绍,你可以看下。

在C语言中,整型常量有三种书写形式:

(1) 十进制整数。十进制整数就是通常整数的写法。例如:11、15、21等。

(2) 八进制整数。八进制整数的书写形式是在通常八进制整数的前面加一个数字0。例如:00、0111、015、021等,它们分别表示十进制整数:0、73、13、17

(3) 十六进制整数。十六进制整数的书写形式是在通常十六进制整数的前面加0x。例如:0x0、0x111、0x15、0x21等,它们分别表示十进制整数0、273、21、33。

注意,整型常量前面没有+或者-,-10其实是一元-运算符和操作数10,同样整型常量的十进制表示并没有0,单独写一个0其实是一个八进制常量。

扩展资料

转换为整型

要明示地将一个值转换为 integer,用 (int) 或 (integer) 强制转换。不过大多数情况下都不需要强制转换,因为当运算符,函数或流程控制需要一个 integer 参数时,值会自动转换。您还可以通过函数 intval() 来将一个值转换成整型。

1、从布尔值转换

FALSE 将产生出0(零),TRUE 将产生出1(壹)。

2、从浮点数转换

当从浮点数转换成整数时,数字将被取整(丢弃小数位)。

注意:如果浮点数超出了整数范围(通常为 +/- 2.15e+9 = 2^31),则结果不确定,因为没有足够的精度使浮点数给出一个确切的整数结果。在此情况下没有警告,甚至没有任何通知!

注:在 Linux 下返回结果是最小负数(-214748),而在 Windows 下返回结果是零(0)。

【以下以C/C++语言为例,陈述一下整型的知识】:

a、C/C++对整型长度的规定是为了执行效率,将int定义为机器字长可以取得最大的执行速度;

b、C/C++中整型包括:int,char和enum,C++中还包含bool类型,C99中bool是一个宏,实际为_Bool;

c、C和C++对enum的规定有所不同,这里不描述;

d、修饰整型正负的有signed和unsigned,对于int默认为signed;

e、修饰 int 大小的有short和long,部分编译器还扩展了一些更长的整型,比如long long和__int64, C99中增加了long long和unsigned long long;

f、int 的长度与机器字长相同,16位的编译器上int长16位,32位的编译器上int长32位;

g、short int的长度小于等于int 的长度,注意它们可能长度相等,这取决于编译器;

h、long int 的长度大于等于int 的长度,注意它们可能长度相等,这取决于编译器;

i、char 的长度应当可以包容得下一个字符,大部分系统中就是一个字节,而有的系统中可能是4个字节,因为这些系统中一个字符需要四个字节来描述;

j、char 的正负取决于编译器,而编译器的决定取决于操作系统,在不同的编译器中char可能等同于signed char,也可能等同于unsigned char。

参考资料来源:百度百科-整型

参考资料来源:百度百科-整型常量

C语言整型,一般分为char类型和int类型,不同的类型取值范围也不尽相同。在32位系统中:

char取值范围:-128~127

unsigned char取值范围:0~255

int取值范围:-2147483648~2147483647

unsigned int取值范围:0~4294967295

在c语言中可以通过C标准库中的limits.h头文件,来直接使用整型类型的最大值和最小值 。示例如下:

#include <stdio.h>

#include <limits>

int main()

{

printf("char取值范围:%d~%d\n",CHAR_MIN, CHAR_MAX )

printf("unsigned char取值范围:%u~%u\n",0, UCHAR_MAX)

printf("int取值范围:%d~%d\n", INT_MIN, INT_MAX)

printf("unsigned int取值范围:%u~%u\n", 0, UINT_MAX)

return 0

}