回答是否定的,事实上在绝大多数计算机中,整数是 用补码形式存放的。 对于正数和零,其补码最高位用零表示,其余各位跟 对应二进制数一致,如图2-3所示。 对于负数,其补码则可按下述方法转换得到: 第一步,先得到对应正数的补码形式。 第三步,在对应正数的补码形式基础上,从最右边一 位开始,向左边扫描直到有1的一位为止(包含有1的这 一位),各位不变,然后继续向左连同符号位按位取反, 得到的代码便是该负数的补码。以-12为例:
回答是否定的,事实上在绝大多数计算机中,整数是 用补码形式存放的。 对于正数和零,其补码最高位用零表示,其余各位跟 对应二进制数一致,如图2-3所示。 对于负数,其补码则可按下述方法转换得到: 第一步,先得到对应正数的补码形式。 第二步,在对应正数的补码形式基础上,从最右边一 位开始,向左边扫描直到有1的一位为止(包含有1的这 一位),各位不变,然后继续向左连同符号位按位取反, 得到的代码便是该负数的补码。以-12为例:
第一步,得到12的补码形式: 0000000000001100 第二步,最右边100不变,其余各位按位取反,最后 得到-12补码: 1111111111110100 可以看到,这时最高位符号位正好还是为1(代表负 数) 例2-4:请写出下列各数在计算机中的16位补码形式。 1)12)0 3)-14)327675)-32767 1)1是正数,对应的补码形式为:00000000 00000001。 2)0对应的补码为:0000000000000000。 3)-1是负数,根据负数补码的转换规则:
第一步,得到12的补码形式: 00000000 00001100 第二步,最右边100不变,其余各位按位取反,最后 得到-12补码: 11111111 11110100 可以看到,这时最高位符号位正好还是为1(代表负 数)。 例2-4:请写出下列各数在计算机中的16位补码形式。 1)1 2)0 3)-1 4)32767 5)-32767 1)1是正数,对应的补码形式为:00000000 00000001。 2)0对应的补码为:00000000 00000000。 3)-1是负数,根据负数补码的转换规则:
第一步,先得到1的补码形式:0000000000000001。 第二步,最右边的1不变,向左各位按位取反:11111111 11111111。 4)32767为正数,先得到二进制形式(32767)2= 111111111111111; 则对应补码为:0111111111111111。 5)-32767为负数,则按负数补码的转换规则: 第一步,先得32767的补码形式:011111111111111; 第二步,从右向左到第一个1的所有位不变,其余各位按位 取反:1000000000000001。 注意:根据补码知识,-32768的16位补码为10000000 00000000(可用补码定义求得,这不是本书讨论范围), 这是16位存储单元所能表示的最小补码数
第一步,先得到1的补码形式:00000000 00000001。 第二步,最右边的1不变,向左各位按位取反:11111111 11111111。 4)32767为正数,先得到二进制形式(32767)2 = 1111111 11111111; 则对应补码为:01111111 11111111。 5)-32767为负数,则按负数补码的转换规则: 第一步,先得32767的补码形式:01111111 1111111; 第二步,从右向左到第一个1的所有位不变,其余各位按位 取反:10000000 00000001。 注意:根据补码知识,-32768的16位补码为10000000 00000000(可用补码定义求得,这不是本书讨论范围), 这是16位存储单元所能表示的最小补码数
综合上面的例子和有关补码知识,t所能保存的数的范围可用图2-5理解。 正数和零区,对应补 十进制 二进制补码 码最高位为零 32767 0111111111111111 80 0. 0 0000000000000000+ -1 1111111111111111 负数区,对应补码最 AAAAAA 1. 4 高位为1和 -32768 1000000000000000 图2-5it型数据取值范围
例2-5:整型数据的溢出。根据图2-5分析下面程序 运行结果。 main() { int i; 1=32767月 i=i+19 printf("i=od",i)月 } 运行结果: i=-32768 (为什么是这个结果?请读者结合图2-5、图2-6思 考,并上机调试)
例2-5:整型数据的溢出。根据图2-5分析下面程序 运行结果。 main() { int i; i = 32767; i = i + 1; printf("i = %d", i ); } 运行结果: i=-32768 (为什么是这个结果?请读者结合图2-5、图2-6思 考,并上机调试)