• 欢迎光临~

day21

开发技术 开发技术 2022-07-17 次浏览

1.剑指 Offer 15. 二进制中 1 的个数

 与1同位与判断最低位是否是1,判断完右移继续判断下一个

 1 class Solution {
 2 public:
 3     int hammingWeight(uint32_t n) {
 4         int cnt = 0;
 5         while(n){
 6           if(n & 1 == 1)  cnt ++;
 7           n >>= 1;
 8         }
 9         return cnt;
10     }
11 };

2.剑指 Offer 65. 不用加减乘除做加法

 贴个k神的代码吧,二进制加法运算,计算机组成原理书上有过程

 1 class Solution {
 2 public:
 3     int add(int a, int b) {
 4         while(b != 0)
 5         {
 6             int c = (unsigned int)(a & b) << 1;
 7             a ^= b;
 8             b = c;
 9         }
10         return a;
11     }
12 };

 

程序员灯塔
转载请注明原文链接:day21
喜欢 (0)