C. x的最低有效字节中的位都等于1 D. x的最高有效字节中的位都等于0 代码应该遵循位级整数编码规则,另外还有一个限制,不能使用(==)和(!=)测试

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51

2.62编写一个函数int_shifts_are_arithemtic(),在对int类型的数使用算数右移的机器上运行时这个函数生成1,而其他情况下生成0.你的代码应该可以运行在任何字长的机器上。在几种机器上测试你的代码。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16

2.63 将下面的c代码补充完整。函数srl用算术右移(由值xsra给出)来完成逻辑右移,后面的其他操作不包括右移或者除法。函数sra用逻辑右移(由值xsrl给出)来完成算术右移,后面的其他操作不包括右移或者除法。可以通过计算8*sizeof(int)来确定数据类型int中的位数w。位移量k的取值范围为0~w-1.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

2.64 写出代码实现如下函数:

1
2

函数应该遵循位级整数编码规则,不过你可以假设数据类型int有w=32位。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15

2.65 写出代码实现如下函数:

1
2

函数应该遵循位级整数编码规则,不过你可以假设数据类型int有w=32位。你的代码最多只能包含12个算数运算,位运算和逻辑运算。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21

代码参考自GitHub