java - 将 10 进制数转换为 3 进制数

标签 java

如何使用方法 int converter(int num) 将 10 进制数转换为 3 进制数。

import java.util.Scanner;

public class BaseConverter {
    int answer;
    int cvt = 0;
    while (num >= 0) {
        int i = num / 3;
        int j = num % 3;
        String strj = Integer.toString(j);
        String strcvt = Integer.toString(cvt);
        strcvt = strj + strcvt;
        num = i;
        break;
    }
    answer = Integer.parseInt("strcvt");
    return answer;
}

public static void main(String[] agrs) {
    Scanner in = new Scanner(System.in);
    System.out.println("Enter a number: ");
    int number = in.nextInt();
    System.out.print(converter(number));
    in.close();
}

编译完成。但是当我尝试运行它并输入一个数字时,它显示 java.lang.NumberFormatException:对于输入字符串:“strcvt” 我不知道如何解决它。如何在不使用字符串的情况下执行此操作?

最佳答案

您根本不需要使用 String。

试试这个

public static long asBase3(int num) {
    long ret = 0, factor = 1;
    while (num > 0) {
        ret += num % 3 * factor;
        num /= 3;
        factor *= 10;
    }
    return ret;
}

注意:计算机中的数字只有 N 位,即 32 位或 64 位,即它们是二进制的。但是,您可以创建一个数字,当以 10 为基数打印时,该数字实际上显示为以 3 为基数的数字。

关于java - 将 10 进制数转换为 3 进制数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28361742/

相关文章:

java - 如何使用 ByteBuffer 生成多个 VBO

java - 我无法连接到 MySQL 数据库

java - 为什么 javac -proc :only option still parse java files when class files already exist?

java - 迭代存储在 ArrayList 中的 HashMap 中的值

java - 为什么 class.forName 很有用

java - 如何在 Firestore Android 中的事务中增加计数器?

java - 如何检查两个对象是否属于同一类?

Java - 读取文件并加载到 HashMap - 如何减少时间?

java - 在类定义的开头或构造函数中初始化成员变量?

java - 如何使用 salesforce.com 作为身份提供者在 Java Web 应用程序中实现 SAML 身份验证