若有定义char a,b;,则执行表达式a=3^2和b=~(5∣2∣0xf0)后,a,b的十进制值分别是( )。

admin2022-10-24  28

问题 若有定义char a,b;,则执行表达式a=3^2和b=~(5∣2∣0xf0)后,a,b的十进制值分别是(          )。

选项 A、5和10
B、9和14
C、6和3
D、1和8

答案D

解析 “^”是按位异或运算,按位异或运算的规则是参与运算的两个运算数中相对应的二进制位上,若数相同,则该位的结果为0,否则该位的结果为1;“|”是按位或运算,规则是参加运算的两个运算数中,只要两个相应的二进制位中有一个为1,那么该位的运算结果就是1,只有当两个相应位的数都为0时,该位的运算结果才是0;“~”是按位取反运算,运算功能是将运算数的二进制位内容按位取反;题干中3^2等价于00000011^00000010,结果为00000001,十进制为1;5|2等价于00000101|00000010,结果为00000111,再与0xf0按位或运算,等价于00000111111110000,结果为11110111,再按位取反:00001000,结果为8,所以a=1,b=8。故本题答案为D选项。
转载请注明原文地址:https://jikaoti.com/ti/mfd0FFFM
0

最新回复(0)