标签:
1、面试题
(1)short s=1;s=s+1;
(2)short s=1;s+=1;
上面两行代码有没有问题,如果有,哪里有问题?
答:第一个有问题,s+1是int类型的值,赋值给short的s,编译报错;
第二个s+=1;不等价于s=s+1;而是等价于s=(s的数据类型)(s+1),有一个强制转换的过程。
2、^(异或)的特点:一个数据对另一个数据位异或两次,该数本身不变
例如:int a=10;int b=20;
a^b^b=10;a^b^a=20;
基于这个特点,^的一个应用是可以做一个简单的数据加密。
面试题:用异或运算符交换a、b的值。
a=a^b;
b=a^b;//b=a^b^b=a;
a=a^b;//a=a^b^a=b;
3、<<:左移 左边最高位丢弃,右边补齐0
>>:右移 最高位是0,左边补齐0;最高位是1,左边补齐1
>>>:无符号右移 无论最高位是0还是1,左边补齐0
例:24>>2=6;
24>>>2=6;
-24>>2=-6;
-24>>>2=1073741818;
标签:
原文地址:http://www.cnblogs.com/sunflower627/p/4581174.html