引入
设字符型变量 x 的值是 064,表达式“~x^x<< 2&x”的值是: A
A.0333 B.333 C.0x333 D.020
分析
我看到这个题,感觉考的很细,把不常用进制转换、运算符、优先级都考到了
进制转换
首先064代表的是8进制转换为十进制 4*8^0+6*8^1=52
~按位非运算符
~按位非运算符,我这里就不细分析了,讲一讲规律如果是
正数n,~n=-(n+1)
负数n,~-n=|-n+1|
比如~64=-65、~65=64
~运算符的优先级位2
<<是左移运算符
<<是左移运算符,规律是:左移运算符 高位溢出,低位补0
举个例子:8<<2
00000....1000
00000....100000
8<<2 = 32
优先级是5
&按位与运算符
&按位与运算符优先级是高于逻辑与运算符的,它有一个口诀,同为1为1,否则为0
举个例子8&10
...1000
...1010
...1000
8&10 = 8
&的优先级是8
^按位异或运算符、|按位或运算符
^按位异或运算符,口诀是同位相同为0,否则为1(注意不要理解为同为0为0了)
|按位或运算符你,口诀是有1个以上为1,就为1,否则为0
以8^10为例
...1000
...1010
...0010
8^10 = 2
^优先级