给定一个长度为 n 的数列,请你求出数列中每个数的二进制表示中 1 的个数。 1≤n≤100000, 0≤数列中元素的值≤10^9
第一行包含整数 n。 第二行包含 n 个整数,表示整个数列。
共一行,包含 n 个整数,其中的第 i 个数表示数列中的第 i 个数的二进制表示中 1 的个数。
5 1 2 3 4 5
1 1 2 1 2
位运算两个最常见用法: 1、x>>i&1 可以算出整数x转成二进制后第i位的值
如:x=9,第3位二进制,9>>3&1,结果为0;
2、x&-x 可以算出整数x转成二进制后,最后一个1
如x=10 ,10&-10,结果为二进制10,整数值为2.