移位运算时很容易出的错误
对于下面的表达式,运算结果应该是多少?
int result = 4 >> 1 + 1;
我不止一次地认为运算结果为4/2+1=3
。而实际上,运算结果为:4/4=1
。如果(4 >> 1) + 1,结果则为3。这是由于移位操作的优先级比加法运算低。
对于下面的表达式,运算结果应该是多少?
int result = 4 >> 1 + 1;
我不止一次地认为运算结果为4/2+1=3
。而实际上,运算结果为:4/4=1
。如果(4 >> 1) + 1,结果则为3。这是由于移位操作的优先级比加法运算低。