没有代码的日子会死djkpengjun.blog.chinaunix.net
djkpengjun
能力强的人善于解决问题,有智慧的人善于绕过问题。 区别很微妙,小心谨慎做后者。
全部博文(399)
数据库(1)
Kafka(1)
Domain_Driven_De(2)
搜索(1)
Linux Swiss(1)
编程(5)
Scrum(1)
前端架构(5)
MongoDB(3)
项目架构(10)
Node.js(1)
Angular(2)
AOP(1)
Guava(1)
Web Crawler(2)
Play(8)
高并发(15)
Load_Balance(3)
Hadoop(4)
REST(4)
Shell Ahead(2)
国际大学ACM程序(0)
国际大学ACM程序(15)
ACM程序设计培训(23)
2018年(3)
2017年(1)
2016年(1)
2015年(69)
2013年(14)
2012年(17)
2011年(12)
2010年(189)
2009年(93)
zjy19811
正义小青
hellozhx
我本痴情
guanguan
cynthia
Phyllis6
Bsolar
小程序小
grjboy30
raochaox
王楠w_n
fieldspl
分类: LINUX
2010-08-31 15:08:20
第0位和第1位交换, 第2位和第3位交换.. 如何用最少的操作。比如11100100 交换后为11011000。
思想为: 把所有的奇数位左移一位,把所有的偶数位右移一位。
得到x的奇数位 x & 0x55555555, 得到x的偶数位 x & 0xAAAAAAAA
代码为:
1
int
swap_odd_even_bits(
x)
2
{
3
return
( ((x & 0x55555555) << 1) | ((x & 0xAAAAAAAA) >> 1) );
4
}
上一篇:Sampling 随即取样问题归纳
下一篇:位操作集锦stanford
登录 注册