java - 实现自定义算术系统

标签 java math hex integer-arithmetic

我需要实现自定义整数算术系统,例如十六进制,但多了 4 个字母。

例如,十六进制使用[0-9,A-F] 来表示一个数字。我的将使用 [0-9,A-J]

Sample representations:  
Decimal(5): Hex(5), MySystem(5)
Decimal(15): Hex(F), MySystem(F)
Decimal(16): Hex(10), MySystem(G)
Decimal(17): Hex(11), MySystem(H)
Decimal(18): Hex(12), MySystem(I)
Decimal(19): Hex(13), MySystem(J)
Decimal(20): Hex(14), MySystem(10)
...

我无法决定我应该将数字存储为 String 还是 BigInteger
如果您能指出我可以阅读 Hex 在代码中的实现方式的某个地方,那将非常有帮助。到目前为止,我只能找到与其他算术系统之间的转换的实现。
非常感谢!

最佳答案

这只是基数为 20(以 20 为底)的整数。

记住(一个抽象概念)和它的表示之间的区别。您只关心输入和输出的表示。当您输入值时,它们将以 base-20 表示,并且您希望以 base-20 输出它们。只要满足该接口(interface),它们在代码中的表示方式就无关紧要,因此您应该对需要覆盖的范围使用最方便的表示形式(int、long 或 BigInteger)。

Java 已经具备了所有必要的基础设施来处理这个问题。查看 Integer.parseInt(String value, int radix) 以获取输入。对于输出,有 Integer.toString(int value, int radix)

关于java - 实现自定义算术系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25942910/

相关文章:

java - 使用 java.nio.Files 或 java.io 类创建 java.io.BufferedWriter

c# - 是否有数学公式可以确定井字游戏中有多少个对角线序列? C#

c# - 检测圆 A 是否完全在圆 B 内

python - 如何使用 python 查看目录中每个文件的第一行

python - 从两个 8 位整数计算 16 位整数值?

java - 在 Java JDBC 中将行插入到 ResultSet 中而不使用 update 方法

java - Java字节码中的 `Stack=1, Locals=1, Args_size=1`是什么意思?

java - 如何在成熟的现有多线程java数据库应用程序中使用ORM技术?

math - 多边形的交集和并集

c++ - 将十六进制字节发送到串行端口