二进制位运算几个常用的技巧

1. 奇数偶数

对于一个正整数的二进制,如果是偶数,那么最低位一定是0,相反如果是奇数,最低位一定是1。比如4(0100),3(0011)等等。因此通过对一个整数的二进制最低位的可以判断其是奇数还是偶数。

对正整数a,判断奇偶可以通过(a&0x1)来判断,是1则是奇数,是0则是偶数。

将一个奇数转成比他小的偶数,(a&-2)

2. 右移1(>>1)

a>>1其实就是a/2;

时间: 2024-10-08 07:32:16

二进制位运算几个常用的技巧的相关文章

Git在开发android系统时常用的技巧及常见错误解决方案

Git常用的技巧及常见错误解决方案 项目管理工作 repo 常用命令 ==目标== 了解repo工作原理及常用的repo命令 Git 日常使用的命令,常见问题及解决方案 ==关键词== Repo , Git ==工作指南== == <big>Repo</big> == Android代码其实是由若干个git 工作组织在一起的,repo 是一个便于整体管理这些项目的脚本. 拉代码时需要用到几个步骤,分别对几个步骤进行阐述一下,网上有很多repo 的使用方法,但是对其工作原理描述的并不

Android Studio常用操作技巧

这段时间一直在用Android Studio做一些Demo的开发,一开始从Eclipse中转向这个开发工具,各种不适应,希望此博文可以一直更新,还有网友可以分享出自己方便更好更快开发的一些技巧. 首先我讲一些经常用到的快捷键吧,网上很多都只说一个大概,很模糊,也不知道什么时候才会用到.我们尽量让这篇博文有作用而不是纯粹的Copy吧! 虽然说Android Studio可以直接一键把所有快捷键设置成Eclipse的快捷键,但是想到你身边的同事,有可能不一定会设置成Eclipse,这样有的时候你如果

linux常用的技巧

在linux下使用shell时,我们常遇到这样的情况,即:前面所输入的所有命令需要重新做一遍,这时候在一条一条输就会觉得很麻烦,而且以后很可能这些命令还得重新执行一遍.这时,如果把shell下的history中的命令提取出来就好了,放到一个shell脚本中,就可以方便我们以后使用了. 但是,history下的文件格式往往是每条命令前都加了数字编号,如何去除呢?可以直接使用下面的命令: history |sed -e 's/^\s*[0-9]*\s*//g' 得出的结果就是所有命令的集合,可以直接

[C++基础]原码/反码/补码、二进制位运算

原码/反码/补码 编码 定义 实例 原码 最高位为符号位,"0"表示正,"1"表示负,其余位表示数值的大小. [+100]原=01100100 [+0]原=00000000 [-100]原=11100100 [-0]原=10000000注意:在原码中,零有两种表示形式. 反码 正数的反码与其原码相同:负数的反码是对其原码逐位取反,但符号位除外. [+100]反=01100100 [+0]反=00000000 [-100]反=10011011[-0]反=1111111

85种网站常用JavaScript技巧

40+45种网站常用Javascript技巧转载自网络,地址不详. 1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键 <table border oncontextmenu=return(false)><td>no</table> 可用于Table 2. <body onselectstart="return false"> 取消选取.防止复制 3.

iOS开发——调试篇&amp;Xcode常用调试技巧

Xcode常用调试技巧 Enable NSZombie Objects(开启僵尸对象) Enable NSZombie Objects可能是整个Xcode开发环境中最有用的调试技巧.这个技巧非常非常容易追踪到重复释放的问题.该技巧会以非常简洁的方式打印指出重复释放的类和该类的内存地址. 怎么开启僵尸对象呢?首先打开“Edit Scheme”(或者通过热键?<),然后选择Diagnostics选项卡,勾选Enable NSZombie Objects选项. 现在我们可以关掉ARC来测试重复释放的问

iOS 知识-常用小技巧大杂烩

iOS 知识-常用小技巧大杂烩 1,打印View所有子视图 po [[self view]recursiveDescription] 2,layoutSubviews调用的调用时机 * 当视图第一次显示的时候会被调用 * 当这个视图显示到屏幕上了,点击按钮 * 添加子视图也会调用这个方法 * 当本视图的大小发生改变的时候是会调用的 * 当子视图的frame发生改变的时候是会调用的 * 当删除子视图的时候是会调用的 3,NSString过滤特殊字符 // 定义一个特殊字符的集合 NSCharact

linux常用命令技巧

原文地址 这篇文章来源于Quroa的一个问答<What are some time-saving tips that every Linux user should know?>-- Linux用户有哪些应该知道的提高效率的技巧.我觉得挺好的,总结得比较好,把其转过来,并加了一些自己的理解. 首先,我想告诉大家,在Unix/Linux下,最有效率技巧的不是操作图形界面,而是命令行操作,因为命令行意味着自动化.如果你看过<你可能不知道的Shell>以及<28个Unix/Linu

Js开发中常用的技巧(上)

Js开发中常用的技巧 1.首次为变量赋值时务必使用var关键字 变量没有声明而直接赋值得话,默认会作为一个新的全局变量,要尽量避免使用全局变量.很显然,全局变量的搜索要比局部变量慢得多:这样就是很多像jQuery等js类库,将window作为入参传入的原因之一. 2.使用===取代== ==和!=操作符会在需要的情况下自动转换数据类型.但===和!==不会,它们会同时比较值和数据类型,这也使得它们要比==和!=快.(两个之间的区别,详见博主的博客). 3.underfined.null.0.fa