经典位运算和计算各进制下的各位数字之和
(num (num - 1)) 是检测2的幂的经典位运算方法结果为0即为2的幂 if ((num (num - 1)) ! 0)按位与0 0 0 0 1 0 1 0 0 1 1 1 全 1 才 1有 0 则 0int lowbit(int x){returnx(-x);}lowbit取出一个整数 x 的二进制中最右边最低位的那个 1 所代表的数值x -x 会 只保留最右边的 1其余位清零。案例:统计二进制中 1 的个数int cnt 0;while (x) {x - lowbit(x);cnt;}n k 1就是右移k位把目标位移到最右边第 0 位按位与1只保留最右边这一位得到0或1// 计算 x 在 base 进制下各位数字之和 int get_sum(int x, int base) { int sum 0; while (x 0) { sum x % base; x / base; } return sum; }
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2453271.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!