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次方 。
- word怎么将文字替换成其他文字 word怎么将文字转换成表格
- QQ群主可以转让吗 为啥qq群主转让不了
- 右转弯闯红灯如何判定 右转弯闯红灯如何处罚
- 曝C罗1月1日起为沙特球队效力年薪2亿 葡萄牙主帅回应C罗转会
- ps翻转图像快捷键mac ps翻转图像快捷键
- 微信语音转换文字显示网络连接失败 微信语音转换文字设置在哪里
- 如何将磁盘从GPT转换成MBR gpt转换成mbr磁盘的方法
- 支付宝怎么设置花呗收款二维码 支付宝怎么设置拒绝陌生人转账
- 工作总结怎么写 试用期转正 工作总结怎么写 每日工作总结
- 如何把固定电话号码设置黑名单 如何把固定电话转接到手机上