设char型变量x中的值为 10100111,则表达式(2+x)^(~3)的值是A.10101001 B.10101000 C.11111101 D.01010101
- A10101001
- B10101000
- C11111101
- D01010101
设char型变量x中的值为 10100111,则表达式(2+x)^(~3)的值是A.10101001 B.10101000 C.11111101 D.01010101
本题主要考查位运算。“按位取反”运算(~)是单目运算符,运算对象应置于运算符的右边,其功能是把运算对象的各二进制位求反;“按位异或”运算(^)是双目运算符,其功能是把参与运算的两数各对应的二进制位相异或。该操作通常用来使一个数中某些指定位翻转,而另一些位保持不变。本题中,首先定义一个字符型变量x,并给出了该变量的二进制表示形式,然后求表达式(2+x)^( ~3)的结果值,在该表达式中,首先运算( ~3)和(2+x)部分,3转换为二进制数的表示为00000011,对它进行取反运算的结果为11111100,2转换为二进制数的表示形式为00000010,它与x的值10100111进行加运算后的结果为10101001(进行这个计算时需要注意:由于变量x是一个符号类型,无负值)。然后对10101001与11111100进行“按位异或”运算,得到结果01010101。因此本题的正确答案选D。