转自博客园的一篇文章,曾被作为公司的面试题
来源:互联网 发布:金十数据手机官网 编辑:程序博客网 时间:2024/05/21 14:58
http://www.cnblogs.com/stoneJin/archive/2011/10/28/2227684.html
不借助第三个变量交换两个整数的值
假设两个数x和y,则有:
方法1,算术运算(加减):
x=x+y;
//x暂存两数之和
y=x-y;
//y为两数之和减去y,即原来的x
x=x-y;
//x为两数之和减去现在的y(原来的x),变成原来的y
方法2,逻辑运算(异或):
x^=y;
//x先存x和y两者的信息
y^=x;
//保持x不变,利用x异或反转y的原始值使其等于x的原始值
x^=y;
//保持y不变,利用x异或反转y的原始值使其等于y的原始值
关于异或运算要牢记两个原则:
任何一位二进制数同 1 异或都会变成另外一个(0 同 1 异或的结果是 1,1 同 1 异或的结果是 0)
任何一位二进制数同 0 异或都保持不变(0 同 0 异或的结果是 0,1 同 0 异或的结果是 1
0 0
- 转自博客园的一篇文章,曾被作为公司的面试题
- 硬件公司的面试题转自北邮人
- 曾遇到过的面试题
- 曾遇到的算法面试题
- 公司的面试题
- 华为公司 java 面试题 选择自 shuidisha 的 Blog
- 转载自博客园的一篇文章 通过SQL Server Profiler来监视分析死锁
- 一篇全面介绍Java注解的文章(转自codekongs博客)
- 第一篇的博客文章
- 第一篇博客的文章
- 腾讯公司的面试题[转]
- 第一次,作为测试,转别人的一篇文章以自勉
- 曾遇到过的面试题以及自己的注解
- 一道公司的面试题
- QQ公司的面试题
- 公司的一道面试题
- C#面试题【转自博客园 - Dflying Chen】
- NET基础面试题整理 (转自博客园)
- 常问面试题:C++中sizeof的陷阱及应答
- dup
- win 7快速启动共享的wifi命令
- Linux与Windows中map类erase方法的差异
- mysql常用操作
- 转自博客园的一篇文章,曾被作为公司的面试题
- 贺利坚——《学会读代码》
- javascript闭包 转
- virtual box设置多个网卡(最多8个网卡)
- Android开发指南-AIDL
- C++初学者应该看什么书
- hdu 1231 最大连续子序列
- UVA 221 - Urban Elevations(枚举+区间覆盖)
- 管道文件初探