我们通常用到的数字都是十进制的,日常使用的也是这样,但是在程序中,我们可能还会经常用到二进制、八进制、十六进制的数字。既然程序中会使用到,那么就会有它存在的道理。有些时候,将数字用字符串保存到文件或者数据库中,你会发现,十进制的64在二进制中表示为1000000,在八进制中表示为100,在十六进制中表示为40。于是,需要将64存储到文件或者数据库中,用二进制表示的话占用了7个字符长度,八进制占了3个字符长度,而十进制、十六进制都只用了2个字符长度,可以看出,如果要使用最想的空间来存储一个普通的十进制数字,只要使用更高的进制表示就可以节省更多的空间。现在,我们完全可以自定义属于自己的进制表示,可以是N进制,当然N会有一定的限制。
下面的源代码给出了自定义进制转换的方法:
/**
* 在进制表示中的字符集合。
*/
final static char[] digits = {
'0' , '1' , '2' , '3' , '4' ,'5' ,
'6' , '7' , '8' , '9' , 'a' ,'b' ,
'c' , 'd' , 'e' , 'f' , 'g' ,'h' ,
'i' , 'j' , 'k' , 'l' , 'm' ,'n' ,