清华大学出版社 TSINGHUA UNIVERSITY PRESS 10 00000000 00001010 (b) 图3.2 实际上,数值是以补码(complement)表示的。一 个正数的补码和其原码的形式相同。图3.2b)就 是用补码形式表示的。如果数值是负的,在内存 中如何用补码形式表示呢?求负数的补码的方法 是:将该数的绝对值的二进制形式,按位取反再 加1。例如求-10的补码:①取-10的绝对值10;② 10的绝对值的二进制形式为1010;③对1010取反 得1111111111110101(一个整数占16位);④再加1 得1111111111110110,见图3.3
图3.2 实际上,数值是以补码(complement) 表示的。一 个正数的补码和其原码的形式相同。图3.2(b) 就 是用补码形式表示的。如果数值是负的,在内存 中如何用补码形式表示呢?求负数的补码的方法 是:将该数的绝对值的二进制形式,按位取反再 加1。例如求-10的补码:①取-10的绝对值10;② 10的绝对值的二进制形式为1010;③对1010取反 得1111111111110101(一个整数占16位);④再加1 得1111111111110110,见图3.3
清华大学出版社 TSINGHUA UNIVERSITY PRESS 10的原码 0000000000001010 (a) 娶反 再加1 1111111110101 得10的补码 1111111111110110 (c) 图3.3 可知整数的16位中,最左面的一位是表示符号的, 该位为0,表示数值为正;为1则数值为负。 关于补码的知识不属于本书的范围,但学习c语言 的读者应该比学习其他高级语言的读者对数据在 内存中的表示形式有更多的了解。这样才能理解 不同类型数据间转换的规律。在本章稍后的叙述 中还要接触到这方面的问题
图3.3 可知整数的16位中,最左面的一位是表示符号的, 该位为0,表示数值为正;为1则数值为负。 关于补码的知识不属于本书的范围,但学习c语言 的读者应该比学习其他高级语言的读者对数据在 内存中的表示形式有更多的了解。这样才能理解 不同类型数据间转换的规律。在本章稍后的叙述 中还要接触到这方面的问题
清华大学出版社 TSINGHUA UNIVERSITY PRESS 2.整型变量的分类 整型变量的基本类型符为int。可以根据数值的范 围将变量定义为基本整型、短整型或长整型。在 it之前可以根据需要分别加上修饰符 (modifier):short(短型)或long(长型)。因此有以下 三种整型变量: (1)基本整型,以in表示。 (2)短整型,以short int表示,或以short表示。 (3)长整型,以long in表示,或以long表示。 在turb0c中一个int型的变量的值范围为-215~(215. 1),即-3276832767。在实际应用中,变量的 值常常是正的(如学号、库存量、年龄、存
2. 整型变量的分类 整型变量的基本类型符为int。可以根据数值的范 围将变量定义为基本整型、短整型或长整型。在 int 之前可以根据需要分别加上修饰符 (modifier):short(短型)或long(长型)。因此有以下 三种整型变量: (1) 基本整型,以int表示。 (2) 短整型, 以short int表示,或以short表示。 (3) 长整型, 以long int表示,或以long表示。 在turbo c中一个int型的变量的值范围为-2 15~(215 - 1) ,即-32768~32767。在实际应用中,变量的 值常常是正的(如学号、库存量、年龄、存
清华大学出版社 TSINGHUA UNIVERSITY PRESS 款额等)。为了充分利用变量的表数范围,此时 可以将变量定义为“无符号”类型。对以上三种 都可以加上修饰符unsigned,以指定是“无符号 数”。如果加上修饰符signed,则指定是“有符 号数”。如果既不指定为signed,也不指定为 unsigned,则隐含为有符号(signed)。 实际上 signed.是完全可以不写的。归纳起来,可以用以 下6种整型变量。即: 有符号基本整型[signed]int 无符号基本整型unsigned int 有符号短整型 [signed]short [int] 无符号短整型 unsigned short [int]
款额等)。为了充分利用变量的表数范围,此时 可以将变量定义为“无符号”类型。对以上三种 都可以加上修饰符unsigned,以指定是“无符号 数” 。如果加上修饰符signed,则指定是“有符 号数”。 如果既不指定为signed,也不指定为 unsigned,则隐含为有符号(signed)。实际上 signed是完全可以不写的。归纳起来,可以用以 下6种整型变量。即: 有符号基本整型 [signed] int 无符号基本整型 unsigned int 有符号短整型 [signed] short [int] 无符号短整型 unsigned short [int]
清华大学出版社 TSINGHUA UNIVERSITY PRESS 有符号长整型 [signed]long [int] 无符号长整型 unsigned long [int] 如果不指定unsignedi或指定signed,则存储单元中最高 位代表符号(0为正,1为负)。如果指定unsigned,.为 无符号型,存储单元中全部二进位(bi)用作存放数本 身,而不包括符号。无符号型变量只能存放不带符 号的整数,如123、4687等,而不能存放负数,如- 123、3。一个无符号整型变量中可以存放的正数的 范围比一般整型变量中正数的范围扩大一倍。如果 在程序中定义a和b两个变量: int a; unsigned int b;
有符号长整型 [signed] long [int] 无符号长整型 unsigned long [int] 如果不指定unsigned或指定signed,则存储单元中最高 位代表符号(0为正,1为负)。如果指定unsigned,为 无符号型,存储单元中全部二进位(bit)用作存放数本 身,而不包括符号。无符号型变量只能存放不带符 号的整数,如123、4687等,而不能存放负数,如- 123、-3。一个无符号整型变量中可以存放的正数的 范围比一般整型变量中正数的范围扩大一倍。如果 在程序中定义a和b两个变量: int a; unsigned int b;