3.3 整型数据
3.3.1 整型常量的表示方法
整型常量即整常数。C 的整常数可以用以下三种形式表示:
-
(1)十进制整数。
-
(2)八进制整数。
- 以 开头的数是八进制数,每一位用 0-7 八个数码表示,逢八进一。
-
(3)十六进制整数。
- 以 开头的数是十六进制数,每一位用 0-9、A-F 十六个数码表示,逢十六进一。
3.3.2 整型变量
1. 整型数据在内存中的存放形式
-
。
-
在实际中,数值是以的形式表示的。
int i,j; //定义2个整型变量 i = 10; //给 i 赋以整数 10 j = -10; //给 j 赋以整数 -10
- 由图可知,整数的16位中,的,该位为0,表示数值为正;为1则数值为负。
注意:在16位系统中,整型才占用2个字节。在32位系统中,整型占4个字节。在不特殊说明的情况下,本书中讨论的就是16位系统。
2. 整型变量的分类
例如:
int a; //定义有符号整型变量a
unsigned int b; //定义无符号整型变量b
3. 整型变量的定义
-
前面已经提到,C规定在程序中所有用到的变量都必须在程序中定义,即“强制类型定义”。
-
对变量的定义,一般放在一个函数的开头部分的声明部分,作用域在函数体内(在第7章会详细介绍)。
-
例3.2 整型变量的定义与使用
#include <stdio.h> int main(void) { int a,b,c,d; //指定a,b,c,d为整型变量 unsigned u; //指定u为无符号整型变量 a = 12; b = -24; u = 10; c = a + u; d = b + u; printf("a+u=%d,b+u=%d",c,d); return 1; }
- 运行结果:
a+u=22,b+u=-14
- 运行结果:
4. 整型数据的溢出
-
一个 int 型变量的最大允许值为 32767,如果再加 1,会出现什么情况?
-
例3.3 整型数据的溢出
#include <stdio.h> int main(void) { int a,b; a = 32767; b = a + 1; printf("a=%d,b=%d",a,b); return 1; }
- 运行结果:
a=32767,b=-32768
注意:一般我们测试的编译系统是32位的,这样的话一个 int 是 4 字节,可以将例3.3程序中的 int 改成 short 就能运行出课本上的结果。
- 运行结果:
3.3.3 整型常量的类型
整型变量可分为 int、short int、long int 和 unsigned int、unsigned short、unsigned long 等类型。那么,在将一个整型常量赋值给上述几类别的整型变量时如何做到?
- (1)一个整数在 -32768~32767 范围内,认为它是 int 型,可以赋值给 int 型和 long int 型变量。
- (2)如果这个整数超过了上述范围,而在-2147483648~2147483647范围内,则认为它是长整形,可以将它赋值给 long int 型变量。
- (3)一个整常量后面加一个字母 u,则认为是 unsigned int 型
- (4)在一个整常量后面加一个字母l或L,则认为是 long int 型常量。
本节完