通过异或交换变量的数值
2015-07-25 11:12
344 查看
通过异或交换变量的数值,最我最为推荐的swap方法,相比
借用第三变量,“temp = a; a = b; b = temp”
, 异或交换 更有效率!
利用加减法,“a = a + b; b = a - b; a = a - b”,异或交换 适用范围更广。这里的适用范围更广,说得有点牵强。加减法给我的直观感觉是 不安全,当“a = a + b”的结果超出了该变量类型所支持的数值范围,会不会出问题?也许是我多虑了,无符号整形有Carry(进位或借位 的标志位),符号整形使用补码参与运算,都是稳稳的,我在VS下做了测试,没有出错。我主要的忧虑是,有些单片机的C编译器,真的不够好。
借用第三变量,“temp = a; a = b; b = temp”
, 异或交换 更有效率!
利用加减法,“a = a + b; b = a - b; a = a - b”,异或交换 适用范围更广。这里的适用范围更广,说得有点牵强。加减法给我的直观感觉是 不安全,当“a = a + b”的结果超出了该变量类型所支持的数值范围,会不会出问题?也许是我多虑了,无符号整形有Carry(进位或借位 的标志位),符号整形使用补码参与运算,都是稳稳的,我在VS下做了测试,没有出错。我主要的忧虑是,有些单片机的C编译器,真的不够好。
相关文章推荐
- AD中查询180天未登录的计算机账户
- OpenCV图像细化的一个例子
- WinXP/Win7/Win8本地用户配置文件迁移至域用户
- AOP学习并实践
- django 1.8 官方文档翻译: 2-6-3 提供初始数据
- Leetcode 12 Integer to Roman
- hdu 5308 I Wanna Become A 24-Point Master
- HDU 5305 Friends (深搜)
- 域信任
- 【转】MySQL命令
- 企业级应用架构模型-并发,事务,锁
- hdu4578Transformation 线段树
- Generic Host Process for Win32 Services 遇到问题需要关闭 server和workstation服务自动停止
- App.Config详解
- 浮点数在计算机中的表示
- ubuntu如何查看MAC地址
- Win10 10240激活失败且错误0xC004C003的解决方法
- hdojText Reverse
- ADC方法(asymmetric distance computation)
- java:int到byte的转换