Hacker delight
来源:互联网 发布:mysql front下载 编辑:程序博客网 时间:2024/05/29 08:02
将一个字的最右侧为1的位改成0
x&(x-1)
检测一个无符号整数是否为2的幂
x&(x+1)
解析出一个字的最右侧的1位(1010100 >> 0000100)
x&(-x)
解析出一个字的最右侧的0位(1010111 >> 0001000 )
-x&(x-1)
x|(x-1)
使一个字的最右侧连续的1位改为0
( (x|(x-1)) + 1)& x
将一个字的最右侧的0位改成1位
x|(x+1)
计算一个字有多少位为1
int pop(unsigned x)
{
int n=0;
while(x){x&=(x-1); ++n;}
return n;
}
字的前导位为0的计数
if(x == 0)return 32;
int n=0;
if(x <= 0x0000FFFF){n+=16; x <<16;}
if(x <= 0x00FFFFFF){n+=8; x <<8;}
if(x <= 0x0FFFFFFF){n+=4; x <<4;}
if(x <= 0x3FFFFFFF){n+=2; x <<2;}
if(x <= 0x7FFFFFFF){n+=1;}
return n;
寻找第一个连续n个1位的串,“移位和与”
int s=0;
while(n>>1)
{s = n>>1;
x = x & (x<<s);
n = n -s;
}
return nlz(x);
0 0
- Hacker delight
- Hacker's Delight
- Hacker's Delight读书笔记
- 读书笔记 Hacker‘s Delight
- 位操作(Hacker's Delight)
- Manipulating Rightmost Bits--come from Hacker's Delight
- Hacker's Delight by Henry S. Warren - Ripped by Caudex 2003
- 位计数(二进制中1的个数)--读Hacker's Delight
- Hacker
- hacker
- Quilting.Time.v1.0.6-DELiGHT\
- Hacker Highschool
- Google Hacker
- Google Hacker
- hacker & copyleft
- hacker video
- hacker必备
- Hacker Way
- MyEclipse快捷键大全
- 一叶知秋
- dm9000
- Google Merchant How To Setup A Live XML Data Feed With MySql and PHP
- Android ProGuard使用要点!
- Hacker delight
- sublime 我常用快捷键
- 关于Eclipse中安装Maven时产生的错误
- 多台 FreeSWITCH 服务器级联
- Android编程中的常见问题及解决办法
- 网络相关文章--学习
- 相册用缩略图生成类(C#,ASP.NET),自适应图像比例。
- Eclipse的SVN插件
- tomcat虚拟服务配置