首页 > 试题广场 >

考虑下面的C函数: int funi(unsigned w

[问答题]

考虑下面的C函数:

int funi(unsigned word) {
return (int) ((word « 24) » 24);
}
int fun2(unsigned word) {
return ((int) word « 24) » 24;
}

假设在一个采用补码运算的机器上以32位程序来执行这些函数。还假设有符号数值的右移是算术右移,而无符号数值的右移是逻辑右移。

A. 填写下表,说明这些函数对几个示例参数的结果。你会发现用十六进制表示来做会更方便,只要记住十六进制数字8到F的最高有效位等于1。

w

funl(w)

fun2(w)

0x00000076

 

 

0x87654321

 

 

0x000000C9

 

 

0xEDCBA987

 

 

B. 用语言来描述这些函数执行的有用的计算。

这道题你会答吗?花几分钟告诉大家答案吧!