位运算技巧

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了位运算技巧相关的知识,希望对你有一定的参考价值。

考虑这样一个题目,将一个十进制数转换城二进制,然后统计二进制数中1的个数,有哪些解法?

 

第一反应想到的解法是在原来数的基础上作 >> 移位运算,缺点在哪里呢?

没有考虑负数的情况,负数右移时,为了保证移位后的数还是负数,高位还是会补0,因此会陷入死循环

 

更好的解法:

1.不在原来的数上操作,而是左移 Ox000001,与原来的数作与运算,int类型的数据循环次数为32

2.n与n-1相与,直到n为0,循环次数为1的个数

代码晚上回去补

以上是关于位运算技巧的主要内容,如果未能解决你的问题,请参考以下文章

位运算简介及实用技巧:基础篇[转]

技巧总结java位运算

位运算技巧

位操作符的一些运算小技巧

位运算的技巧

markdown 位运算技巧