问题 单项选择题

以下程序的功能是进行位运算
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

解析: ,是位异或运算符,其作用是将左右运算分量的相应二进制位进行异或操作。即,相应位同时为。或同时为1则结果相应位为0,否则结果相应位为1。所以a=7^3= (00000111)2^(00000011)2=(00000100)2=4。~是位反运算符,作用是将运算分量的二进制位按位取反。即,原来是0的二进制位变成1,原来是1的变成0。 &是位与运算符,其作用是将左右运算分量的相应二进制位进行与操作。即,相应位同时为1时结果相应位为1,否则结果相应位为0。所以b=-4&3=~(00000100)2&(00000011)2 (11111011)2&(00000011)2=(00000011)2=3。故应该选择A。

单项选择题
问答题 简答题