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

admin2009-01-15  28

问题 以下程序的功能是进行位运算    main ( )     { unsigned char  a,  b;       a=73;    b=~4&3;       printf (,%d %d\n" ,a,b);        }       程序运行后的输出结果是

选项 A、4    3
B、7    3
C、7    0
D、4    0

答案1

解析 是位异或运算符,其作用是将左右运算分量的相应二进制位进行异或操作。即,相应位同时为。或同时为1则结果相应位为0,否则结果相应位为1。所以a=73= (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。
转载请注明原文地址:https://jikaoti.com/ti/ZkK0FFFM
0

最新回复(0)