Java 将十进制转换为二进制

Java 将十进制转换为二进制,java,binary,Java,Binary,代码大部分都完成了,但我的代码打印不正确,打印出来的是110,而不是011。我遇到的问题需要将“110”反转为“011” 您可以简单地使用Integer#tobinarysting(int)以二进制字符串的形式返回结果 Scanner scan=新的扫描仪(System.in); int value=scan.nextInt(); System.out.println(Integer.toBinaryString(value)); 您可以直接打印每个二进制数字,而无需将其存储在binaryNum

代码大部分都完成了,但我的代码打印不正确,打印出来的是110,而不是011。我遇到的问题需要将“110”反转为“011”

您可以简单地使用Integer#tobinarysting(int)以二进制字符串的形式返回结果

Scanner scan=新的扫描仪(System.in);
int value=scan.nextInt();
System.out.println(Integer.toBinaryString(value));

您可以直接打印每个二进制数字,而无需将其存储在
binaryNum

while(num!=0){
系统输出打印(数量%2);
num/=2;
}
System.out.println();

然后使用如下字符串:

   int num = scan.nextInt();

   String s = "";
   while (num != 0) {
    int   rem = num % 2;
      num /= 2;
      s = s + rem; // this concatenates the digit to the string in reverse order.

      // if you want it in normal order, do it ->  s = rem + s;
   }
   System.out.println(s);

我对java还很陌生,所以我不知道该怎么做:在主帖子上写上pupped。在我说错的时候更新了帖子。一个整数可以接受的最大值是2147483647。这仅仅是10位数字,意味着你可以拥有的最大二进制数是1111111,也就是1023。如果您的输入将大于1023,那么您应该使用字符串来存储您的binaryNum。您的代码工作正常。如果你输入6,它会打印110,这是正确的。或者如果OP不需要字符串,
binaryNum=(binaryNum*10)+rem
。?@ashu表示常规二进制数,是的。但是如果向后打印,它不会显示前导零,它显示11代表6,而不是011。啊,是的!以零比零领先:p
   int num = scan.nextInt();

   String s = "";
   while (num != 0) {
    int   rem = num % 2;
      num /= 2;
      s = s + rem; // this concatenates the digit to the string in reverse order.

      // if you want it in normal order, do it ->  s = rem + s;
   }
   System.out.println(s);