2014-09-19 82 views
2

我需要实现一个自定义整数算术系统,如十六进制,但有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是如何在代码中实现的,那真的很有帮助。到目前为止,我只能找到仅用于来自其他算术系统的会话的实现。
非常感谢!

+2

你可以从Integer.parseInt(s,基数)源代码 – Leo 2014-09-19 21:59:05

回答

3

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

请记住(抽象概念)和它的表示之间的差异。您只关心输入和输出的表示。当您输入值时,它们将以20为基数表示,并且您希望以20为基数输出它们。只要满足该接口,它们在代码中的表示方式应该无关紧要,因此您应该使用最方便的表示法来覆盖需要覆盖的范围(int,long或BigInteger)。

Java已经拥有处理这个问题所需的全部基础设施。查看Integer.parseInt(String value, int radix)的输入。对于输出有Integer.toString(int value, int radix)

+0

谢谢你的回答。如果你能告诉我在哪里可以找到一些Hex实现代码,那就太棒了! – g7k 2014-09-21 01:57:19

+0

@ g7k为什么?你刚刚被告知你不需要它。 – EJP 2014-09-21 02:20:47

+0

@EJP我已经接受了答案,我现在知道我不需要它,这就是我将如何实现它。但是我仍然喜欢阅读Hex如何实现的:-) – g7k 2014-09-21 02:35:15