繁体   English   中英

以二进制表示反转整数

[英]Reversing an integer in binary representation

我试图创建一个代码来在 Java 中接收一个整数并以二进制形式输出它。 问题似乎是二进制文件向后打印。 例如, 6应该输出为011但输出为110

import java.util.Scanner;

public class LabProgram {
  public static void main(String[] args) {

    int userNum;

    Scanner in =new Scanner(System. in );

    userNum = in.nextInt();

    binary(userNum);
    System.out.print("\n");
  }

  private static void binary(int userNum) {
    int remainder;

    while (userNum <= 1) {
      System.out.print(userNum);
      return;
    }

    remainder = userNum % 2;
    binary(userNum >> 1);
    System.out.print(remainder);
  }
}

我尝试合并一个推栈,将剩余部分推入一个我稍后可以拉出的堆栈中,但无法让它落地。

private static void reverse(int userNum) {

  String backwards;

  while (userNum >= 0) {
    backwards.push(int userNum);
    System.out.println(backwards);
    return;
  }
}

它是要求以下内容的课堂作业的一部分。

编写一个程序,将一个正整数作为输入,并输出一个由 1 和 0 组成的字符串,以二进制表示该整数。 对于整数 x,算法为:

As long as x is greater than 0
   Output x % 2 (remainder is either 0 or 1)
   x = x / 2

注意:上述算法以相反的顺序输出 0 和 1。

例如:如果输入是:

6

输出是:

011

二进制中的6110 该算法反向输出这些位。

这些是程序应用的测试和我的结果。

输入6

你的输出binary is:110

预期产出011

输入19

你的输出10011

预期产量11001

输入255

你的输出11111111

预期输出11111111

这方面的任何帮助或指导,我将不胜感激。

根据要求而不考虑负数

import java.util.Scanner;

public class LabProgram {
    public static void main(String[] args) {
        int userNum;

        Scanner scnr = new Scanner(System.in);

        userNum = scnr.nextInt();

        while(userNum > 0){
            System.out.print(userNum % 2);
            userNum = userNum / 2;
        }
        System.out.print("\n");
    }
}

我试图创建一个代码来在 Java 中接收一个整数并以二进制形式输出它。 问题似乎是二进制文件向后打印。 例如, 6应该输出为011但输出为110

import java.util.Scanner;

public class LabProgram {
  public static void main(String[] args) {

    int userNum;

    Scanner in =new Scanner(System. in );

    userNum = in.nextInt();

    binary(userNum);
    System.out.print("\n");
  }

  private static void binary(int userNum) {
    int remainder;

    while (userNum <= 1) {
      System.out.print(userNum);
      return;
    }

    remainder = userNum % 2;
    binary(userNum >> 1);
    System.out.print(remainder);
  }
}

我尝试合并一个推栈,将剩余部分推入一个我稍后可以拉出的堆栈中,但无法让它落地。

private static void reverse(int userNum) {

  String backwards;

  while (userNum >= 0) {
    backwards.push(int userNum);
    System.out.println(backwards);
    return;
  }
}

它是要求以下内容的课堂作业的一部分。

编写一个程序,输入一个正整数作为输入,并输出一个由 1 和 0 组成的字符串,以二进制表示该整数。 对于整数 x,算法为:

As long as x is greater than 0
   Output x % 2 (remainder is either 0 or 1)
   x = x / 2

注意:上述算法以相反的顺序输出 0 和 1。

例如:如果输入是:

6

输出是:

011

二进制中的6110 该算法反向输出这些位。

这些是程序应用的测试和我的结果。

输入6

你的输出binary is:110

预期产出011

输入19

你的输出10011

预期产量11001

输入255

你的输出11111111

预期输出11111111

这方面的任何帮助或指导,我将不胜感激。

我试图创建一个代码来在 Java 中接收一个整数并以二进制形式输出它。 问题似乎是二进制文件向后打印。 例如, 6应该输出为011但输出为110

import java.util.Scanner;

public class LabProgram {
  public static void main(String[] args) {

    int userNum;

    Scanner in =new Scanner(System. in );

    userNum = in.nextInt();

    binary(userNum);
    System.out.print("\n");
  }

  private static void binary(int userNum) {
    int remainder;

    while (userNum <= 1) {
      System.out.print(userNum);
      return;
    }

    remainder = userNum % 2;
    binary(userNum >> 1);
    System.out.print(remainder);
  }
}

我尝试合并一个推栈,将剩余部分推入一个我稍后可以拉出的堆栈中,但无法让它落地。

private static void reverse(int userNum) {

  String backwards;

  while (userNum >= 0) {
    backwards.push(int userNum);
    System.out.println(backwards);
    return;
  }
}

它是要求以下内容的课堂作业的一部分。

编写一个程序,输入一个正整数作为输入,并输出一个由 1 和 0 组成的字符串,以二进制表示该整数。 对于整数 x,算法为:

As long as x is greater than 0
   Output x % 2 (remainder is either 0 or 1)
   x = x / 2

注意:上述算法以相反的顺序输出 0 和 1。

例如:如果输入是:

6

输出是:

011

二进制中的6110 该算法反向输出这些位。

这些是程序应用的测试和我的结果。

输入6

你的输出binary is:110

预期产出011

输入19

你的输出10011

预期产量11001

输入255

你的输出11111111

预期输出11111111

这方面的任何帮助或指导,我将不胜感激。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM