对于一个字节(8bit)的变量,求其二进制表示中"1"的个数,要求算法的执行效率尽可能地高。
2015-02-03 11:22
363 查看
public class BinaryTest {
public static void main(String[] args) {
System.out.println(countNum(10));
System.out.println(countNum2(10));
System.out.println(countNum3(10));
}
private static int countNum(int v){
int num = 0;
while(v != 0){
if(v % 2 == 1)
num++;
v = v / 2;
}
return num;
}
private static int countNum2(int v) {
int num = 0;
while(v != 0){
num += v & 1;
v >>=1;
}
return num;
}
private static int countNum3(int v) {
int num = 0;
while(v != 0){
v &= (v-1);
num++;
}
return num;
}
}
public static void main(String[] args) {
System.out.println(countNum(10));
System.out.println(countNum2(10));
System.out.println(countNum3(10));
}
private static int countNum(int v){
int num = 0;
while(v != 0){
if(v % 2 == 1)
num++;
v = v / 2;
}
return num;
}
private static int countNum2(int v) {
int num = 0;
while(v != 0){
num += v & 1;
v >>=1;
}
return num;
}
private static int countNum3(int v) {
int num = 0;
while(v != 0){
v &= (v-1);
num++;
}
return num;
}
}
相关文章推荐
- 对于一个字节(8bit)的变量,求二进制表示中"1”的个数,要求算法的执行效率尽可能的高
- 对于一个字节(8bit)的无符号整形变量,求二进制表示中“1”的个数,要求算法执行效率尽可能地高
- 转:对于一个字节(8bit)的变量,求其二进制表示中“1”的个数
- 一个字节(8bit)的无符号整形变量,求二进制表示中“1”的个数。
- 编程之美读书笔记:求一个字节(8bit)的无符号整型变量表示的二进制中1的个数
- 求一个数据,二进制表示中"1"的个数
- 对于一个字节(8bits)的变量,求其二进制表示中“1”的个数
- 统计一个字节中被置1的位的个数的函数,要求效率尽可能高
- 计算一个整数二进制位中1的个数。要求效率尽可能的高。且能正确求正数和负数的二进制中1的个数。
- 计算1个数--计算一个整数二进制位中1的个数。要求效率尽可能的高。且能正确求正数和负数的二进制中1的个数。
- Java经典算法集——如下:用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。
- 反转一个字节和判断32位整数二进制中1的个数等算法
- 用1、2、3、3、4、5这六个数字,用java写一个程序,打印出所有不同的排列 要求:"4"不能在第三位,"3"与"5"不能相连。
- 每天一到算法练习题1 -- 一个正整数有可能可以被表示为 n(>=2) 个连续正整数之和
- IAR编译器一个警告信息-Warning[Pe550]: variable "变量" was set but never used
- 反转一个字节 和 判断32位整数二进制中1的个数 的算法(ZZ)
- 反转一个字节 和 判断32位整数二进制中1的个数 的算法
- 从数据库取出一个时间字段,当取出的时间超过当前时间就显示"1" 不超过当前时间就显示"0"
- 反转一个字节 和 判断32位整数二进制中1的个数 的算法(ZZ)
- 反转一个字节 和 判断32位整数二进制中1的个数 的算法