//比较最低位是否为1,复杂度O(logn),仅适合正数,当是负数,将出现死循环 function getOne(n){ var c = 0; while(n){ if(n&1){ c ++; } n >>= 1; } console.log(c); } function getOne(n) { var c = 0; for (var i = 1; i; i <<= 1) { if (i & n) { c++; } } console.log(c); } //快速去掉最高位1 function getOne(n){ var c = 0; while(n){ n = n &(n - 1); c++; } console.log(c); }
时间: 2024-11-10 04:31:02