Tiny Tricky Code
来源:互联网 发布:硬质合金的重量算法 编辑:程序博客网 时间:2024/05/29 11:45
1. Swapping
The following piece of code is what I discovered by a glance to what my deskmate was reading:
It is about swapping and I think it can be applied to all kinds of data swapping if there is no high-level requirements involved. Until then, I was convinced that a temporary variable is inevitable in even the swapping of the simplest type. Although ccomplishing it without a temporary variable is probably the only merit of this code, it is very clever and inspiring.
The conventional way of swapping two entities:
- void swap(in out T a, in out T b)
- {
- T t = b;
- b = a;
- a = t;
- }
The improved method:
- void swap(in out T a, in out T b) // T supports ^ operation in the bitwise sense
- {
- a ^= b;
- b ^= a;
- a ^= b;
- }
Yes, it's that simple and easy to remember, just three XORs, despite its obscurity.
- Tiny Tricky Code
- 一段tricky code
- Tricky machine code
- tricky
- QEMU技术分析2 - TCG(Tiny Code Generator)基本原理
- QEMU技术分析2 - TCG(Tiny Code Generator)基本原理
- Powershell Tricky
- Excel Tricky
- Tricky Problems
- Tricky sum
- Tricky Sum
- Tricky Sum
- Tricky Sum
- Tricky Sum
- Tricky Sum
- Tricky Sum
- Tricky Sum
- Tricky Sum
- validation简单验证(1)
- Unix守护进程列表
- struts总结
- 创建并调用Win32 DLL
- action中scope
- Tiny Tricky Code
- struts 模板
- struts基础
- 守护进程(讲解与实例)
- struts分页
- Microsoft 101 LINQ Samples
- 从文件中删除数据
- struts+spring 传统做法
- struts+spring