位与(&)常用编程技巧
补充知识:1)正整数的补码与原码相同;
2)求负整数的补码:原码 符号位不变,数值位各位取反,最后整个数加1得到补码;
3)按位与&的结果是补码与补码运算得到的结果。
进制转换:1)十进制整数----->二进制(除2取余倒排)
2)二进制--->十进制(按权重相乘相加)
3)十六进制 <------>二进制(1位对应4位)
1. int x; x按位表示有多少位1?
编程中常会用到位编程,若要数出一个数x中有多少位1,可用如下算法:
int func(int x){
int count = ;
while(x){
count++;
x = x&(x-);
}
return count;
}
x & (x-1)得到的是消去x最低位的1后的数。
2. int x; x中最右边的位1的表示数是多少?
x & (-x);//得到x最右边位1的表示数
x & (-x)得到的是x最低位是1的表示数。
(N-Queens就用到这种技巧)
位与(&)常用编程技巧的更多相关文章
- “仿QQ局域网聊天软件”项目-常用编程技巧总结
1 信号槽篇 qqLogin loginDialog; QQ mainDialog; loginDialog.show(); //连接登陆窗口和主窗口 QObject::connect(&lo ...
- java命名规范和编程技巧
一个好的java程序首先命名要规范. 命名规范 定义这个规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性,方便维护等作用 Package 的命名 Package 的名字应该都是由一个小写 ...
- 无插件Vim编程技巧
无插件Vim编程技巧 http://bbs.byr.cn/#!article/buptAUTA/59钻风 2014-03-24 09:43:46 发表于:vim 相信大家看过<简明Vim教程& ...
- 从linux内核中学到的编程技巧 【转】
从linux内核中学到的编程技巧 分类: LINUX 1构建泛型宏 (./linux/include/linux/kernel.h) #define min(x, y) ({ \ typeof(x ...
- Matlab常用小技巧及部分快捷键
Matlab常用小技巧一: 1. m文件如果是函数,保存的文件名最好与函数名一致,这点都很清楚.不过容易疏忽的是,m文件名的命名尽量不要是简单的英文单词,最好是由大小写英文/数字/下划线等组成.原因是 ...
- 无插件VIM编程技巧(网摘)
无插件VIM编程技巧 原文出处:[陈皓 coolshell] 相信大家看过<简明Vim教程>也玩了<Vim大冒险>的游戏了,相信大家对Vim都有一个好的入门了.我在这里把我日常 ...
- 偏执却管用的10条Java编程技巧
本文由 ImportNew - LynnShaw 翻译自 javacodegeeks.欢迎加入翻译小组.转载请见文末要求. 经过一段时间的编码(咦,我已经经历了将近20年的编程生涯,快乐的日子总是过得 ...
- BASH的保护性编程技巧
BASH的保护性编程技巧 shell常用逻辑判断 -b file 若文件存在且是一个块特殊文件,则为真 -c file 若文件存在且是一个字符特殊文件,则为真 -d file 若文件存在且是一个目 ...
- js异步编程技巧一
异步回调是js的一大特性,理解好用好这个特性可以写出很高质量的代码.分享一些实际用的一些异步编程技巧. 1.我们有些应用环境是需要等待两个http请求或IO操作返回后进行后续逻辑的处理.而这种情况使用 ...
随机推荐
- HDU1561 The more, The Better(树形DP)
题目是有n个存有宝藏的城堡,攻克任何一个城堡都需要先攻克0个或其他1个城堡,问攻克m个城堡最多能得到多少宝藏. 题目给的城堡形成一个森林,添加一个超级根把森林连在一起就是树了,那么就考虑用树型DP: ...
- BZOJ1766 : [Ceoi2009]photo
如果两个矩形相交且不是包含关系,那么完全可以让它们不相交. 将坐标离散化后,设$f[i][j][k]$表示区间$[i,j]$纵坐标不小于$k$的部分的最优解. 对于$f[i][j][k]$,要么枚举分 ...
- ZOJ 3805 (树形DP)
题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5337 题目大意:方块连接,呈树形.每个方块有两种接法,一种接在父块 ...
- CSS一些总结
1. display block:块元素,默认宽度为100%,可以设置元素的宽高,默认占满一行.块元素包括div,h1-h6,form,table,ul,ol等: inline:行内元素,默认宽度为内 ...
- winform学习之-----页面设计-20160523
1.将默认的Form属性设置为FormBorderStyle:none 2.picturebox均设置为backgroundImage 3.lable设置自动换行,autosize true,设置Ma ...
- JavaScript - 倒计时
http://www.helloweba.com/demo/loading/ WEB开发中经常会用到倒计时来限制用户对表单的操作,比如希望用户在一定时间内看完相关协议信息才允许用户继续下一步操作,又比 ...
- MUI - 预加载
预加载都是在mui.init({)}中执行的 方式一:preload一次仅能预加载一个页面(除非循环) var subWebview = mui.preload({ url: 'examples/ac ...
- 14. Launch an instance
Controller Node: 1. source demo-openrc.sh 2. ssh-keygen 3. nova keypair-add --pub-key ~/.ssh/id_rsa. ...
- YII2.0 secruity
保存密码不能用明文保存,用MD5或者sha1哈希化是安全,但是随着硬件的发展,可能会暴力破解,目前能够对抗暴力破解的哈希算法是 bcrypt,Yii提供了两个帮助函数使用crypt进行安全的哈希加密 ...
- ci调用application/views下的css,js,图片资源出现You don't have permission to access CodeIgniter on this server解决
原因是view文件下面有个.htaccess文件,里面写的是 Deny from all //拒绝所有请求 自己本地测试的话,就直接去掉,放到服务器就指定application/views文件 ...