新编c语言程序设计教程周二强答案,新编C语言程序设计教程练习二参考答案.doc...

练习二

2.1用计算机处理信息时为什么需要对信息进行数字化编码?

答:

现代计算机采用二进制形式表示数据和指令,计算机内部处理的所有数据都是经过数字化编码的二进制数据,数值、文字、图形等信息只有编码成二进制形式才能由计算机进行处理。

2.2编码数值型数据时需考虑哪三个方面的问题?

答:

1. 编码的长度

2. 正负号的编码

3. 小数点的编码

2.3 求码长1个字节的原码、反码和补码形式的定点整数分别能编码整数的范围与个数。

答:

原码:1111 1111 - 0111 1111 -127~127共255数

反码:1000 0000 – 0111 1111 -127~127共255数

补码: 1000 0000 – 0111 1111 -128~127共256数

2.4求下列数的补码(码长1个字节)。

65 -1 123 -123 -128

答:

65:0100 0001

-1:原码1000 0001反码1111 1110补码1111 1111

123:0111 1011

-123:原码1111 1011反码1000 0100补码1000 0101

-128:原码不能用1字节表示反码同样补码1000 0000

2.5从负数的反码加1得补码的过程说明补码的符号位可以看作是特殊的数值位的理由。(提示:以码长1个字节为例,用127减去负数原码的数值位就得到了负数的反码)

答:

以-123为例

原码1111 1011反码1000 0100补码1000 0101

0111 1111 127

-1111 1011 -123

1000 0100 4 +1=5 1000 0101:-128+5=-123

2.6求码长分别为2个和4个字节时第4题中几个数的补码,并分析码长变化时补码是如何变化的。

65 -1 123 -123 -128

答:

65:0000 0000 0100 0001

-1:原码1000 0000 0000 0001

反码1111 1111 1111 1110

补码1111 1111 1111 1111

123:0000 0000 0111 1011

-123:原码1000 0000 0111 1011

反码1111 1111 1000 0100

补码1111 1111 1000 0101

-128:原码1000 0000 1000 0000

反码1111 1111 0111 1111

补码1111 1111 1000 0000

65:0000 0000 0000 0000 0000 0000 0100 0001

-1:原码1000 0000 0000 0000 0000 0000 0000 0001

反码1111 1111 1111 1111 1111 1111 1111 1110

补码1111 1111 1111 1111 1111 1111 1111 1111

123:0000 0000 0000 0000 0000 0000 0111 1011

-123:原码1000 0000 0000 0000 0000 0000 0111 1011

反码1111 1111 1111 1111 1111 1111 1000 0100

补码1111 1111 1111 1111 1111 1111 1000 0101

-128:原码1000 0000 0000 0000 0000 0000 1000 0000

反码1111 1111 1111 1111 1111 1111 0111 1111

补码1111 1111 1111 1111 1111 1111 1000 0000

变化规律为:正数前面补0,负数前面补1。

2.7用实例证明码长2个字节的补码形式整数的取值范围也构成一个环。分析下面程序的输出结果。

答:

#include

void main( )

{

short i = 32767, j = -32768;

printf("%hd+1=%hd\n", i, i+1);

printf("%hd-1=%hd\n", j, j-1);

}

当变量i和j的值为127和-128时,程序的运行结果又怎样?

答:

输出结果为:

32767+1=-32768

-32768-1=32767

当变量i和j的值为127和-128时,程序的运行结果为:

127+1=128

-128-1=-129

因为short型变量的取值范围为-32768到32767,所以值128和-129不会溢出。

2.8升序排列下面的整型字面量。

0xac 169 0253

0xac的值为172,0253的值为171。

升序排列为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值