问题 单项选择题

以下程序的功能是进行位运算:
main()
unsigned char a, b;
a=7^3; b=~4&3;
printf("%d%d\n", a, b);

程序运行后的输出结果是

A) 4 3
B) 7 3
C) 7 0
D) 4 0

答案

参考答案:A

解析: 本题考查的是位运算。C语言提供6种位运算符,按优先级由高到低的顺序分别为:取反(~)→左移(<<)和右移(>>)→按位与(&)→按位异或(^)→按位或(|)。“^”是按位异或运算,当对应位上的二进制数值相同时,异或的结果为0,对应位上的二进制数值不同时,异或的结果为1,本题“7^3”相当于“0111^0011”,所以a的值为4;“&”是按位与运算符,只有当所有对应位上的数值都为l时,结果才为1;“~”是按位取反。题中“~4&3”相当于1011&0011=0011,所以b的值为3。

名词解释
单项选择题