int tmp;
int a=10;
int b=20;
tmp=a;
a=b;
b=tmp;
上述代码计算之后 , a和b的值完成交换 , a的值为20 , b的值为10 。
如果用异或运算来交换2个数 , 可以如下方法:
int a=10;
int b=20;
a=a^b;
b=a^b;
a=a^b;
上述运行之后 , a和b依然完成了值的交换 , 但由于是异或位运算 , 所以效率比上面的代码要高 。
证明:
a=10^20
b=a^b=(10^20)^20=10^20^20=10^0=10
a=a^b=10^20^10=10^10^20=0^20=20
2.2左移( << )不需要考虑最高位补位问题 , 因为高位会被直接溢出 。右移有符号右右移(>>)和无符号右移(>>>) , 有符号右移最高位要补符号位 , 无符号右移最高位只需要补零即可 。所以无符号右移负数时 , 会变为正数 。
2.3 右移就是原数除以2的n次方 。左移就是原数乘以2的n次方 。
- 输入输出10进制16进制和字符串那些事 输入16进制数输出10进制
- 十进制和十六进制数制转换 十进制与十六进制转换
- 乘坐高铁还不允许带这些物品 乘坐高铁注意事项及携带物品规定
- 韩城算命(图文)
- 属猴的适合做什么行业,做这些可大展拳脚
- 属猴男生喜欢什么女生,这几款最中意
- 属猴男人讨厌什么女人,这几类最厌恶
- 属猴的适合住什么楼层,住这几楼风水最好
- 目前这4部智能手机最值得买 目前最值得买的5部手机
- 你们5G套餐太贵 5g套餐这么贵