黑马程序员技术交流社区

标题: 求教负数进制之间的转换..... [打印本页]

作者: 朱金林    时间: 2012-10-8 09:23
标题: 求教负数进制之间的转换.....
本帖最后由 朱金林 于 2012-10-8 17:30 编辑

负数之间的进制怎么转换?比如-1101,-125.-5 怎么转换成其他进制的?
重点说明符号是怎么处理的???
谢谢各位!

作者: 古银平    时间: 2012-10-8 09:42
  1. class ArrayTest7
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 //toBin(-6);
  6.                 //toHex(-60);
  7.                 //toBa(60);

  8. //                System.out.println(Integer.toBinaryString(6));
  9. //                System.out.println(Integer.toHexString(6));
  10.         }

  11.         /*
  12.         十进制-->二进制
  13.         */
  14.         public static void toBin(int num)
  15.         {
  16.                 trans(num,1,1);
  17.         }

  18.         /*
  19.         十进制-->八进制
  20.         */
  21.         public static void toBa(int num)
  22.         {
  23.                 trans(num,7,3);
  24.         }
  25.         /*
  26.         十进制-->十六进制
  27.         */
  28.         public static void toHex(int num)
  29.         {
  30.                 trans(num,15,4);
  31.         }

  32.         public static void trans(int num,int base,int offset)
  33.         {

  34.                 if(num==0)
  35.                 {
  36.                         System.out.println(0);
  37.                         return ;
  38.                 }
  39.                 char[] chs = {'0','1','2','3'
  40.                                         ,'4','5','6','7'
  41.                                         ,'8','9','A','B'
  42.                                         ,'C','D','E','F'};
  43.                 char[] arr = new char[32];

  44.                 int pos = arr.length;

  45.                 while(num!=0)
  46.                 {
  47.                         int temp = num & base;
  48.                         arr[--pos] = chs[temp];
  49.                         num = num >>> offset;
  50.                 }

  51.                 for(int x=pos; x<arr.length; x++)
  52.                 {
  53.                         System.out.print(arr[x]);
  54.                 }

  55.                 return ;
  56.         }
  57. }
复制代码
看看吧,用数组容器就行,
作者: 郭阳    时间: 2012-10-8 17:19
和正数一样处理。。。。。。
作者: 朱金林    时间: 2012-10-8 17:30
嗯,谢谢各位啦!
作者: 杨华东    时间: 2012-10-8 17:51
路过 打酱油咯
作者: 韩军博    时间: 2012-10-8 17:55
朱金林 发表于 2012-10-8 17:30
嗯,谢谢各位啦!

如果问题解决,就把帖子修改为已解决
作者: 徐传任    时间: 2012-10-8 22:42
看看..............




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2