java 程序,从用户获取一个值并将其转换为其八进制等价物

标签 java

所以我正在尝试构建一个接受用户输入的程序,然后如果该输入介于 0 和 2097151 之间,则该程序会将该 int 转换为其等效的八进制,然后在最后显示它。我在下面发布的程序工作得很好,但可能效率不高,我很好奇,并且正在尝试寻找有关如何使用计数器控制重复的 while 循环来实现同一程序的帮助,正如建议的方法那样使用,但我不知道如何做到这一点。

我问自己并且感到困惑的问题是:如何继续将一个数字除以 8,继续对一个数字除以 8 的模,并将该模存储到单独的变量中,以便我可以打印他们就在彼此旁边吗?我不确定如何继续取模直到我的数字达到 0 并使用 while 循环跟踪余数。

需要澄清的是,这是一项学校作业,仅限于 while 循环、for 循环、逻辑运算符和 if/if else 语句。我无法使用方法或内置方法来实现所需的最终结果。

import java.util.Scanner;
public class kwatke_OctalConversion {
    public static void main(String args[]) {
        Scanner input = new Scanner( System.in );
        int modulus1, modulus2, modulus3, modulus4, modulus5, modulus6, modulus7;
        int smallest=0;
        int Largest=2097151;
        System.out.println("The purpose of this program is to take a value from the "
            + "user and\n convert it from a base 10 number to a base 8 number and "
            + "display it\n for the user to see the converted octal number\n"
            + "Please enter a non-negative number between 0 and 2097151 to see it's "
            + "octal equivalent: " );
        int number = input.nextInt();
        if (number<smallest || number>Largest) {
            System.out.println ( "UNABLE TO CONVERT" );
        } else {
            modulus1 = (number % 8); //meat of our program, take number from user,
            number /= 8;             // take modulus of number, divide by 8, rinse and
            modulus2 = (number % 8); // repeat storing the modulus in a differnt var
            number /= 8;             // each time and continusing to divide the
            modulus3 = (number % 8); // leftover number by 8 until it reaches 0,
            number /= 8;             // storing modulus in a new variable each time.
            modulus4 = (number % 8);
            number /= 8;
            modulus5 = (number % 8);
            number /= 8;
            modulus6 = (number % 8);
            number /= 8;
            modulus7 = (number % 8);

            System.out.printf("%d%d%d%d%d%d%d\n", modulus7, modulus6, modulus5,
                modulus4, modulus3, modulus2, modulus1);
        }
    }
}

最佳答案

您可以使用:

    Scanner input = new Scanner(System.in);
    System.out.println("Please enter the number : ");
    int number = input.nextInt();
    String result = Integer.toOctalString(number);

See the source code here

关于java 程序,从用户获取一个值并将其转换为其八进制等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28932843/

相关文章:

java - TestNG 与 DataProviders 的参数数量错误

java - 如何在 Rhino JavaScript 引擎中配置沙盒安全性

java - gradle:如何删除中间子项目?

java - Intellij 想法 : How do I create custom Inspection rule with regexp

java - 检查字符串内容

java - matlab基于数字的唯一标识符

java - 使用 php 和 JSON 将 android 连接到 mySQL

java - gps 在模拟器中工作但在移动设备中不工作

java - 在没有 java -jar unix & windows 的情况下运行 JAR?

java - 替换特定 URL 参数中的字符