首页 > 代码库 > 位运算技巧
位运算技巧
考虑这样一个题目,将一个十进制数转换城二进制,然后统计二进制数中1的个数,有哪些解法?
第一反应想到的解法是在原来数的基础上作 >> 移位运算,缺点在哪里呢?
没有考虑负数的情况,负数右移时,为了保证移位后的数还是负数,高位还是会补0,因此会陷入死循环
更好的解法:
1.不在原来的数上操作,而是左移 Ox000001,与原来的数作与运算,int类型的数据循环次数为32
2.n与n-1相与,直到n为0,循环次数为1的个数
代码晚上回去补
位运算技巧
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。