1
/**
* Created by abdul on 10/31/2016.
*/
import java.util.Arrays;
import java.util.Scanner;
public class BitCount {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Enter Cases:");
int cases = in.nextInt();
for (int i = 0; i < cases; i++) {
int a = in.nextInt();
String binary = Integer.toBinaryString(a);
String[] nums = {binary};
int count = 0;
for (int j = 0; j < nums.length; j++) {
//System.out.println(Arrays.toString(nums));
if (nums[j].equals("1"))
count++;
}
System.out.println(count);
}
}
這個二進制計數器從代碼調用修道院數位 正如你可能知道,計算機內的所有值以二進制表示的一個問題。在這個簡單的任務中,您需要編寫一個程序來計算給定值中的非零位數。for循環
我們使用的是32位整數值,所以應該有0到32個非零位。 http://www.codeabbey.com/index/task_view/bit-count 你能幫我理解爲什麼我的循環只增加一次而不增加整個事物嗎?
'nums.length'是'1',因爲有數組中的一件事。我想你需要'binary.length()'。 –
['Integer.bitCount(a)'](https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html#bitCount-int-)可能會很有趣。 –