码迷,mamicode.com
首页 > 其他好文 > 详细

位运算技巧

时间:2017-03-30 13:16:10      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:统计   解法   没有   位运算   哪些   转换   缺点   死循环   nbsp   

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

 

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

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

 

更好的解法:

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

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

代码晚上回去补

位运算技巧

标签:统计   解法   没有   位运算   哪些   转换   缺点   死循环   nbsp   

原文地址:http://www.cnblogs.com/construtora/p/6645477.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!