初入C语言,有理解错误或不正确请多指教、纠正!
C语言整型int是英文integer的缩写,int分为有符号(signed)和无符号(unsigned)整型。
C语言整型有如下:
一、有符号
- 1、signed char 可简化为 char
- 2、signed short int 可简化为 short
- 3、signed int 可简化为 int
- 4、signed long int 可简化为 long
- 5、signed long long int 可简化为 long long
二、无符号
- unsigned char
- unsigned short int 可简化为 unsigned short
- unsigned int
- unsigned long int 可简化为 unsigned long
- unsigned long long int 可简化为 unsigned long long
虽然完整写法比较麻烦,不过意义明确。
三、注意点
- 上面类型越往下的类型取值范围越大,不能把大的数值往小的类型装,会导致数据不正确
- 类型所占用的字节数不同的编译器、平台会有差别。如int在16位系统占用2个字节,在32、64位一般占用4个字节。另外long在windows只占用4个字节,在类Unix中long占用8个字节
- 一个字节(Byte)有8个二进制位(Bit),即 1Byte=8Bit
- 有符号整型二进制的最高位为符号位,0表示正数,1表示负数。因此有符号一个字节只有7个二进制位是数据位(取值范围计算方法:-2^7~2^7-1,为什么是7次方而不是8次方?因为二进制最高位是符号位。为什么正数要减1呢?因为正数范围多了一个0)
- 无符号整型所有二进制位全部是数据位(取值范围计算方法:0~2^8-1,为什么正数要减1呢?因为正数范围多了一个0)
- 类型具体占用多少字节可用sizeof关键进行查询
- 可引入limits.h头文件,打印输出各类型最小取值、最大取值范围(具体看代码段)
四、各类型取值范围(以windows10系统64位为例)
<