二进制黑科技
来源:互联网 发布:淘宝零点抢购 编辑:程序博客网 时间:2024/04/29 18:32
俗话说的好啊,世界上有两种人,一种知道二进制,一种不知道二进制。开个玩笑。
总结一下平常使用二进制地方的程序。更多的小技术可以查看Integer的源码。
1)用位运算来代替 :第三个变量作为两数的交换。
// 比如我们要交换a和b,注意a和b的类型int a = 10,b = 20;a = a^b;b = a^b;a = a^b;// 其中使用的原理就是:n^n=0,0^n=n。
2)奇偶性判断
public boolean isEven(int n) { return n&1==0; //实现原理:利用2进制数中第一位为1则该数属于奇数,为0则为偶数。}
3)利用二进制实现乘法。
//1.实现n*7,n*9等等; 实现原理:n<<1 等价于n*2; n>>1等价于n/2; --->延伸出n*7 = n(2^3)-npublic int getNum(int n) { // return (n<<3)-n; //n*7 // return (n<<3)+n; //n*9}
4)统计某数中1的个数
//消除数字中最右边的1,并返回结果 public int removeOne(int num) { return num&(num-1); //实现原理:与运算:同1为1,有0为0。让一个数 与上 让它减1的数。 } //返回该数的二进制中1的个数 public int countOne(int num) { int count = 0; while(num!=0) { num = removeOne(num); //调用一次,消除一次最右边的1 count++; } return count; }
阅读全文
0 0
- 二进制黑科技
- 黑科技
- 黑科技
- 黑科技
- 《黑科技》
- 黑科技/隐性科技展望
- debug 黑科技
- CSS 的黑科技
- 汽车座椅中的黑科技
- ACM竞赛黑科技
- 离散化黑科技
- RunTime黑科技
- 黑科技 - 扩栈
- Windows黑科技汇总
- CSS3黑科技 - 内凹圆角
- IDEA黑科技汇总
- IBM 人工智能黑科技
- STL 黑科技
- Problem: fireworks
- 一个简易的触发器实现(一)
- java 中的注解使用
- 为Fragment设置转场动画
- es启动失败,报错:Could not reserve enough space for object heap
- 二进制黑科技
- 容斥原理+模板题HDU-1796
- springMVC文件上传源码
- 13_运算符_01_算术_逻辑_位运算符_扩展运算符
- Android 中BitmapFactory.decodeResource方法参数个代表什么意思
- 大对象简介+大对象的4种类型+lob类型的优点+lob的组成
- Linux下socket编程之TCP
- Android启动模式
- HDU---1754 I Hate It