Encuentre un número entero, el número de 1 binarios cuando se almacena en la memoria

Ideas:

  • Dado que el tipo int ocupa 4 bytes, el bucle for se realiza 32 veces
  • num desplazamiento a la derecha y 1 fase y

Código:

import java.util.Scanner;
public class pra1214 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int num=sc.nextInt();
        int count=0;
        for(int i=0;i<32;i++){
            if((1&(num>>i))==1){
                count++;
            }
        }
        System.out.println("num在内存中存储时二进制1的个数为:"+count);
    }
}

Nota: En la instrucción if, no se puede escribir como num & (1 << i), por lo que el resultado puede ser un número como 1000, que es incorrecto.

Supongo que te gusta

Origin blog.csdn.net/weixin_43939602/article/details/111873590
Recomendado
Clasificación