靳润昭C语言教程讲义 2001年2月17日 00oooooolololololiolio 数值是以补码表示的 ■正数的补码和原码相同 ■负数的补码:将该数的绝对值的二进制形式按位取反再加1。 例如 求-10的补码 10的原码 100oooolooloolool1olllol 取反: 山山山山山山山o山o 再加1,得-10的补码 山 1111111110110 由此可知,左面的第一位是表示符号的 2.整型变量的分类 1)基本型:类型说明符为int,在内存中占2个字节 2)短整量:类型说明符为 short int或 short。所占字节和取值范围均与基本型相同 3)长整型:类型说明符为 long int或long,在内存中占4个字节 4)无符号型:类型说明符为 unsigned 无符号型又可与上述三种类型匹配而构成 无符号短整型:类型说明符为 unsigned short, signed 无符号基本型:类型说明符为 unsigned int或 unsigned 无符号长整型:类型说明符为 unsigned long 各种无符号类型量所占的内存空间字节数与相应的有符号类型量相同。但由于省去了符 号位,故不能表示负数。 有符号整型变量:最大表示32767 o山山 无符号整型变量:最大表示65535 下表列出了 Turbo C中各类整型量所分配的内存字节数及数的表示范围 匚类型说明符 数的范围 字节数 -32768~32767 unsigned int 0~65535 即0~(216-1) 32768~32767 即-215~(215-1) unsigned short int 0-65535 即0~(216-1) 2 -2147483648-2147483647即-231~(231-1) 4 unsigned long 0~4294967295 即0~(232-1) 以13为例 0000000000001101 第6页
靳润昭 C 语言教程讲义 2001 年 2 月 17 日 第6页 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 数值是以补码表示的: ◼ 正数的补码和原码相同; ◼ 负数的补码:将该数的绝对值的二进制形式按位取反再加 1。 例如: 求-10 的补码: 10 的原码: 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 取反: 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 再加 1,得-10 的补码: 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 由此可知,左面的第一位是表示符号的。 2. 整型变量的分类 1) 基本型:类型说明符为 int,在内存中占 2 个字节。 2) 短整量:类型说明符为 short int 或 short。所占字节和取值范围均与基本型相同。 3) 长整型:类型说明符为 long int 或 long,在内存中占 4 个字节。 4) 无符号型:类型说明符为 unsigned。 无符号型又可与上述三种类型匹配而构成: ◼ 无符号基本型:类型说明符为 unsigned int 或 unsigned。 ◼ 无符号短整型:类型说明符为 unsigned short。 ◼ 无符号长整型:类型说明符为 unsigned long。 各种无符号类型量所占的内存空间字节数与相应的有符号类型量相同。但由于省去了符 号位,故不能表示负数。 有符号整型变量:最大表示 32767 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 无符号整型变量:最大表示 65535 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 下表列出了 Turbo C 中各类整型量所分配的内存字节数及数的表示范围。 类型说明符 数的范围 字节数 int -32768~32767 即-2 15~(2 15 -1) 2 unsigned int 0~65535 即 0~(2 16 -1) 2 short int -32768~32767 即-2 15~(2 15 -1) 2 unsigned short int 0~65535 即 0~(2 16 -1) 2 long int -2147483648~2147483647 即-2 31~(2 31 -1) 4 unsigned long 0~4294967295 即 0~(2 32 -1) 4 以 13 为例: int 型: 00 00 00 00 00 00 11 01
靳润昭C语言教程讲义 2001年2月17日 short int型: 0o 00000000 0011 o1 000000000000m unsigned short int型: 1101 0000000000 000000|000000000011101 3.整型变量的定义 变量定义的一般形式为 类型说明符变量名标识符,变量名标识符, 例如 a,b,c;(a,b,c为整型变量) long,y;(xy为长整型变量) unsigned p, q,(pq为无符号整型变量) 在书写变量定义时,应注意以下几点: 允许在一个类型说明符后,定义多个相同类型的变量。各变量名之间用逗号间隔。 类型说明符与变量名之间至少用一个空格间隔 最后一个变量名之后必须以“;”号结尾。 变量定义必须放在变量使用之前。一般放在函数体的开头部分。 【例3.2】整型变量的定义与使用。 maino int a b c d c=a+u d=b+u printf("atu%d, b+u%dn, c, d 4.整型数据的溢出 【例3.3】整型数据的溢出。 mal a=32767 b=a+1; printf("%d, %d\n", a, b); 第7页
靳润昭 C 语言教程讲义 2001 年 2 月 17 日 第7页 short int 型: 00 00 00 00 00 00 11 01 long int 型: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 11 01 unsigned int 型: 00 00 00 00 00 00 11 01 unsigned short int 型: 00 00 00 00 00 00 11 01 unsigned long int 型: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 11 01 3. 整型变量的定义 变量定义的一般形式为: 类型说明符 变量名标识符,变量名标识符,...; 例如: int a,b,c; (a,b,c 为整型变量) long x,y; (x,y 为长整型变量) unsigned p,q; (p,q 为无符号整型变量) 在书写变量定义时,应注意以下几点: ◼ 允许在一个类型说明符后,定义多个相同类型的变量。各变量名之间用逗号间隔。 类型说明符与变量名之间至少用一个空格间隔。 ◼ 最后一个变量名之后必须以“;”号结尾。 ◼ 变量定义必须放在变量使用之前。一般放在函数体的开头部分。 【例 3.2】整型变量的定义与使用。 main() { int a,b,c,d; unsigned u; a=12;b=-24;u=10; c=a+u;d=b+u; printf(“a+u=%d,b+u=%d\n”,c,d); } 4. 整型数据的溢出 【例 3.3】整型数据的溢出。 main() { int a,b; a=32767; b=a+1; printf("%d,%d\n",a,b); }