Java 将整数转换为二进制并打印数字之和
下面的代码应该取一个整数,将其转换为二进制,然后打印数字之和: 例如:Java 将整数转换为二进制并打印数字之和,java,binary,Java,Binary,下面的代码应该取一个整数,将其转换为二进制,然后打印数字之和: 例如: Input = 15 ( 15 in Binary is "1111" and 1+1+1+1 = 4 ) Output = 4 这是我目前掌握的代码。然而,它并没有像预期的那样发挥作用。如果输入15,它将返回0,而不是4,如上所述: Scanner in = new Scanner(System.in); int X = in.nextInt(); String binary =
Input = 15
( 15 in Binary is "1111" and 1+1+1+1 = 4 )
Output = 4
这是我目前掌握的代码。然而,它并没有像预期的那样发挥作用。如果输入15
,它将返回0
,而不是4
,如上所述:
Scanner in = new Scanner(System.in);
int X = in.nextInt();
String binary = Integer.toBinaryString(X);
int amount = 0;
String input = Integer.toString(X);
for(int b = 0; b < binary.length(); b++){
if (binary.charAt(b) == 1){
amount++;
}
}
System.out.println(amount);
Scanner-in=新的扫描仪(System.in);
int X=in.nextInt();
字符串二进制=整数。toBinaryString(X);
整数金额=0;
字符串输入=整数。toString(X);
对于(int b=0;b
字符始终为单引号。
1是从字符串中提取的字符,应使用单引号写入
以下是正确的代码:
if (binary.charAt(b) == '1'){
amount++;
}
字符始终为单引号。 1是从字符串中提取的字符,应使用单引号写入 以下是正确的代码:
if (binary.charAt(b) == '1'){
amount++;
}
较短的方法:
Scanner in = new Scanner(System.in);
int X = in.nextInt();
String binary = Integer.toBinaryString(X);
String input = Integer.toString(X)
System.out.println(StringUtils.countMatches(input, "1"));
较短的方法:
Scanner in = new Scanner(System.in);
int X = in.nextInt();
String binary = Integer.toBinaryString(X);
String input = Integer.toString(X)
System.out.println(StringUtils.countMatches(input, "1"));
二进制操作非常复杂
int p = 0b10000000000000000000000000010101;
int t = 0;
for(int i=0; i<32; i++) {
t += p & 1;
p = p >> 1;
}
System.out.println(t);
int p=0b10000000000000000000010101;
int t=0;
对于(int i=0;i>1;
}
系统输出打印ln(t);
二进制操作非常复杂
int p = 0b10000000000000000000000000010101;
int t = 0;
for(int i=0; i<32; i++) {
t += p & 1;
p = p >> 1;
}
System.out.println(t);
int p=0b10000000000000000000010101;
int t=0;
对于(int i=0;i>1;
}
系统输出打印ln(t);
会发生什么?您期望什么?如果您提供一系列示例输入,以及结果是什么,您将鼓励回答。这样可以更快地回答问题,因为问题可能是显而易见的,而不必过多地遵循逻辑和/或亲自编译并提出测试用例。(或者更简洁地说,“+1我打字时@GernotKrost”说了什么。:)发生了什么?你期望什么?如果你提供一系列的样本输入,以及结果是什么,你会鼓励回答。这样可以更快地回答问题,因为问题可能是显而易见的,而不必过多地遵循逻辑和/或亲自编译和提出测试用例。(或者更简洁地说,“+1我打字时@GernotKrost”说了什么。:)