二进制数中1的个数
package 位运算;
import java.util.Scanner;
public class 二进制中1的个数 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int number = scanner.nextInt();
int count = 0;
System.out.println(Integer.toString(number,2));
for(int i =0;i<32;i++) {
if((number&(1<<i))==(1<<i)) {
count++;
}
}
System.out.println(count);
int count2=0;
for(int i=0;i<32;i++) {
if(((number>>>i)&1)==1) {
count2++;
}
}
System.out.println(count2);
int count3=0;
while(number!=0) {
number = number&(number-1);
count3++;
}
System.out.println(count3);
}
}
是不是2的整数次方
package 位运算;
import java.util.Scanner;
public class 是不是2的整数次方 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int number = scanner.nextInt();
System.out.println(Integer.toString(number,2));
if((number&(number-1))==0){
System.out.println("yes");
}else {
System.out.println("no");
}
}
}
找出唯一成对的数
package 位运算;
import java.util.Random;
public class 找出唯一成对的数 {
public static void main(String[] args) {
int N=1001;
int[] arrays = new int[N];
for (int i = 0; i < arrays.length-1; i++) {
arrays[i]=i+1;
}
arrays[arrays.length-1] = new Random().nextInt(N-1)+1;
int index = new Random().nextInt(N);
arrays[index]=arrays[index]^arrays[arrays.length-1];
arrays[arrays.length-1] = arrays[index]^arrays[arrays.length-1];
arrays[index] = arrays[arrays.length-1]^arrays[index];
int x=0;
for(int i=1;i<N;i++) {
x = x^i;
}
for(int i=0;i<arrays.length;i++) {
x = x^arrays[i];
}
for (int i = 0; i < arrays.length; i++) {
System.out.print(arrays[i]+" ");
}
System.out.println();
System.out.println(x);
}
}