我需要实现一个自定义整数算术系统,例如十六进制,但还要有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
。如果您能将我指向可以阅读十六进制如何在代码中实现的地方,那将非常有帮助。到目前为止,我只能找到仅用于与其他算术系统之间的对话的实现。
非常感谢!
最佳答案
那只是基数为20(以20为底)的整数。
记住价值(抽象概念)与其表示形式之间的区别。您只关心输入和输出的表示形式。输入值时,它们将以20为基数表示,而您想以20为基数输出它们。只要满足该接口的要求,它们在代码中如何表示就无关紧要,因此,对于需要覆盖的范围(int,long或BigInteger),应使用最方便的表示形式。
Java已经具有处理此问题的所有必要基础结构。签出Integer.parseInt(String value, int radix)
进行输入。对于输出,有Integer.toString(int value, int radix)