好友离职,发文纪念
来源:互联网 发布:unity3d免费版下载 编辑:程序博客网 时间:2024/04/29 02:04
忽然听到motte的“搞定了”,然后马上就看到msn的签名:V
心里很高兴,然后忽然也比较伤心,这么多年了,不容易啊;唉,发文 以纪念。
一直知道"不需要不引入第三变量的变量交换"的一种办法,就是++--;今天终于知道并且理解了第二种方案。
因外上面的算术交换算法有导致变量溢出的危险,所以我们再想办法引入一个逻辑运算——位异或,也能得到交换效果,而且不会导致溢出。
位异或运算符是“^”,它的作用是按照每个位进行异或运算,异或运算有一个特点:
通过异或运算能够使数据中的某些位翻转,其他位不变。这就意味着任意一个数与任意一个给定的值连续异或两次,值不变。 即:a^b^b=a。将a=a^b代入b=a^b则得b=a^b^b=a;同理可以得到a=b^a^a=b;
如存在c=a^b;这种关系后,任意给出两个变量进行位异或运算,都能得到剩下的第三个变量:
a=b^c;
b=a^c;
c=a^b;
因此位异或也常用于密码学中。
因为它是按位进行运算的,因此没有溢出的情况,在这里,我们运用位异或运算来交换变量的值。
理论上重载“^”运算符,也可以实现任意结构的交换
原文引自
http://hi.baidu.com/yarmu/blog/item/ddad0ef39a0b36cf0b46e00d.html
- 好友离职,发文纪念
- 发文纪念
- 发文纪念
- 离职纪念
- 今天生日,发文纪念
- 第一篇 发文纪念
- 发文以示纪念
- 博客开通,发文纪念
- 纪念俺的第一次发文!!!
- 第一次申请blog,发文纪念,^_^
- 点击次数过万,发文纪念
- 今天郁闷得很,特此发文纪念
- 发文纪念文章入选CSDN Blog精华
- 第一天写博客,发文纪念一下
- CSDN的Blog开张,发文纪念一下
- 多篇文章入选CSDN技术中心,发文纪念
- 发文纪念进入CSDN技术中心排行榜前10
- 发文纪念我Blog中的文章再次登上CSDN首页
- SOFTICE 使用说明 (断点)
- 全网型网站(同时支持web和wap) 特性介绍
- xslt 中调用 focus.swf
- C# GDI+写的桌面宠物
- 美国大选结果
- 好友离职,发文纪念
- C# 抽象类、密封类及类成员
- struct--timer_list 定时器(动态定时器/内核定时器)转
- SoftICE使用(使用其它指令)
- RICH EDIT 控件 SDK 参考手册
- SoftICE使用(指令使用)
- 注意 Class-Path: 的写法
- if语句的用法
- 一次cygwin的绿化 - 顺便多学一些脚本/注册表的知识