package sort;
import java.util.Arrays;
public class Test56_2 {
public static void main(String[] args) {
int[]e={3,3,3,4};
System.out.println(getn(e));
}
public static int getn(int[] s) {
int[] store = new int[32];
for (int i = 0; i < store.length; i++) {
store[i] = 0;
}
for (int i = 0; i < s.length; i++) {
System.out.println(s[i]);
int mask = 1;
for (int j = 31; j >= 0; j--) {
store[j] += s[i] & mask;
mask = mask << 1;
}
}
System.out.println(Arrays.toString(store));
int result = 0;
int base = 1;
for (int i = 31; i >= 1; i--) {
if ((store[i] %3) != 0)
result += base;
System.out.println("result"+result);
base = base << 1;
}
return result;
}
}
本文介绍了一种使用位操作和数组存储来统计整数数组中各二进制位出现次数的方法,并通过这些统计结果计算出特定条件下的整数结果。代码示例展示了如何遍历整数数组,对每个整数的每一位进行位与操作,累加到对应的数组位置,最后根据累加结果计算最终输出。
722

被折叠的 条评论
为什么被折叠?



