实现自定义算术系统

时间:2014-09-19 21:54:02

标签: 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)
...

我无法决定是否应将号码存储为StringBigInteger 如果你能指出我可以阅读代码中如何实现Hex的地方,那将会非常有帮助。到目前为止,我只能找到来自/到其他算术系统的转换的实现 非常感谢!

1 个答案:

答案 0 :(得分:3)

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

记住(抽象概念)与其表示之间的区别。您只关心输入和输出的表示。当您输入值时,它们将在base-20中表示,并且您希望在base-20中输出它们。只要该接口满足,它们的代码如何在代码中表示就无所谓了,因此您应该使用最方便的表示来覆盖(int,long或BigInteger)。

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