/**
* 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);
}
}
Это проблема из кода Abbey Called Bit Count Как вы, наверное, знаете, все значения внутри компьютера представлены в двоичной системе. В этой простой задаче вы должны написать программу, которая подсчитывает количество ненулевых битов в заданном значении.двоичный счетчик для цикла
Мы используем 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-) может быть интересным. –