1. Representación de números negativos en la computadora
En la computadora, tanto los números positivos como los negativos están representados por el complemento a dos.
2. Cómo encontrar el k-ésimo dígito en la representación binaria de n
3. lowbit(x): devuelve el último bit de x 1
4. Ejemplo: el número 1 en binario
Dada una secuencia de longitud n , encuentre el número de 1 en la representación binaria de cada número en la secuencia .
formato de entrada
La primera línea contiene el entero n .
La segunda línea contiene n enteros que representan la matriz completa.
formato de salida
Un total de una línea, que contiene n enteros, donde el i -ésimo número representa el número de 1 en la representación binaria del i -ésimo número en la secuencia .
rango de datos
1≤n≤100000 ,
0≤El valor del elemento en la matriz≤10 9
Muestra de entrada:
5
1 2 3 4 5
Salida de muestra:
1 1 2 1 2
código:
#include <iostream>
using namespace std;
int lowbit(int x)
{
return x&(-x);
}
int main()
{
int n;
cin>>n;
while(n--)
{
int x;
cin>>x;
int res=0;
while(x) x-=lowbit(x), res++;//每次减去x的最后一位1
cout<<res<<' ';
}
return 0;
}