CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

菜鸟问题,JAVA中任意进制整数的转换

楼主downcast()2004-12-01 17:38:57 在 Java / J2SE / 基础类 提问

据说JAVA默认只支持2-36进制,超过36的要怎么转呢?不会要自己实现吧? 问题点数:20、回复次数:7Top

1 楼redex(cc)回复于 2004-12-01 17:43:22 得分 5

你能用多少种进制啊?Top

2 楼downcast()回复于 2004-12-01 17:50:08 得分 0

现在遇到的问题需要62进制(10个数字加上大小写字母),有没有办法能自定义字符和数值的映射的?Top

3 楼catblue(佛家说:一粒沙中看世界。)回复于 2004-12-02 09:43:03 得分 5

为什么要用到那么多?Top

4 楼playgb(溯缘)回复于 2004-12-02 09:52:50 得分 5

不会是搞数据压缩吧?Top

5 楼downcast()回复于 2004-12-02 10:13:42 得分 0

为啥回复中问号的数目都赶上提问中的问号数了呢,郁闷……数制多不是问题吧,时间里都用到60进制了。把问题再说得明白点,整数进行数制转换要加上参数radix,而当radix不在Character.MIN_RADIX和Character.MAX_RADIX的范围内(也就是2-32)时会发生异常。而且默认的36个数码表示是0..9a..z。现在的问题是,能否扩充并且自定义这个表示,比如把10定义成A而不是a,把59定义成x,诸如此类的。Top

6 楼playgb(溯缘)回复于 2004-12-02 10:45:07 得分 5

要多少有多少,库自己扩  
          public   static   void   main(String[]   arg)  
          {  
                  System.out.println(toUnsignedString(65535,8));  
                  System.out.println(toUnsignedString(65535,32));  
                  System.out.println(toUnsignedString(65535,33));  
          }  
          public   static   String   toUnsignedString(int   i,int   radix)  
          {  
                  String   tmp   =   "";  
                  do{  
                          int   lf   =   0;  
                          if(i<radix)  
                          {  
                                  tmp   =   digits[i]   +   tmp;  
                                  break;  
                          }  
                          lf   =   i%radix;  
                          tmp   =   digits[lf]   +   tmp;  
                          i   =   i/radix;  
                  }while(i!=0);  
                  return   tmp;  
          }  
          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'   ,  
  'o'   ,   'p'   ,   'q'   ,   'r'   ,   's'   ,   't'   ,  
  'u'   ,   'v'   ,   'w'   ,   'x'   ,   'y'   ,   'z'   ,  
                  'A'   ,   'B'   ,   'C'   ,   'D'   ,   'E'   ,   'F'   ,  
                  'G'   ,   'H'   ,   'I'   ,   'J'   ,   'K'   ,   'L'   ,  
                  'M'   ,   'N'   ,   'O'   ,   'P'   ,   'Q'   ,   'R'   ,  
                  'S'   ,   'T'   ,   'U'   ,   'V'   ,   'W'   ,   'X'   ,  
                  'Y'   ,   'Z'                    
          };Top

7 楼downcast()回复于 2004-12-06 20:32:31 得分 0

如果是BigInteger呢?我不是不会自己实现,只是觉得太累。如果有那种只要稍微改一下设置就能用的方法最好。先慰问一下楼上的。Top

相关问题

  • 整数与字符串的转换
  • 字符串转换为整数
  • CE下字符串转换成整数?
  • ip地址转换为一个整数
  • 如何把负数转换成整数?
  • 整数转换字符串的问题
  • 字符串转换成整数
  • 整数如何转换成字符串?
  • 整数转换为字符串问题
  • 大整数转换为小整数的幂函数形式

关键词

  • tounsignedstring
  • radix
  • 问题
  • println

得分解答快速导航

  • 帖主:downcast
  • redex
  • catblue
  • playgb
  • playgb

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo