黑马程序员技术交流社区

标题: 十进制转换为二进制,八进制,十六进制的实现 [打印本页]

作者: 多多    时间: 2013-8-29 15:39
标题: 十进制转换为二进制,八进制,十六进制的实现

http://bbs.itheima.com/thread-79670-1-1.html
(出处: 黑马程序员训练营论坛)

作者: 行如止水    时间: 2013-8-29 15:46
Integer类里有相关的函数转换成二进制、十六进制、八进制
作者: 多多    时间: 2013-8-29 16:07
行如止水 发表于 2013-8-29 15:46
Integer类里有相关的函数转换成二进制、十六进制、八进制

好多好多都有,现在在学基础,这样子做,就会明白个所以然。
作者: 行如止水    时间: 2013-8-29 18:06
这个是我写的转换类,能将十进制转换成二进制,要用到递归:
  1. class Transform{
  2.         private String input;
  3.         private ArrayList<Integer> binaryResult = null;
  4.         private String stringResult;
  5.         public void decimalToBinary(int d){                        //将十进制转换车成二进制,结果存放在binarResult中
  6.                 if(d == 1)
  7.                         binaryResult.add(0, new Integer(d));
  8.                 else{
  9.                         binaryResult.add(0, new Integer(d%2));
  10.                         decimalToBinary(d/2);
  11.                 }
  12.         }
  13.         public Transform(String in){                        //构造函数
  14.                 input = new String(in);
  15.                 binaryResult = new ArrayList<Integer>();
  16.                 stringResult = new String();
  17.         }
  18.         public void showResult(){                                //输出类集ArrayList<Integer> binaryResult;
  19.                 System.out.println(binaryResult);
  20.         }
  21.         public void changeString(String str){        //修改输入字符窜
  22.                 input = str;
  23.         }
  24.         public String getStringResult(){                //将结果转换为字符串存放在stringResult中,
  25.                 StringBuffer buf = new StringBuffer();
  26.                 for(int i = 0; i < binaryResult.size(); i++){
  27.                         buf.append(binaryResult.get(i).intValue());
  28.                 }
  29.                 stringResult = buf.toString();
  30.                 return stringResult;
  31.         }
  32.         static public boolean verify(String str){        //此函数用与校验,是static函数
  33.                 char ch[] = str.toCharArray();
  34.                 for(int i = 0; i < ch.length; i++){
  35.                         if(ch[i] < '0' | ch[i] > '9'){
  36.                                 System.out.println("字符串中含有无法转换成数字的字符:"+ch[i]);
  37.                                 return false;
  38.                         }
  39.                 }
  40.                 return true;
  41.         }
  42.         private boolean verify(){                //类中使用的校验函数,是上一个函数的重载
  43.                 char ch[] = input.toCharArray();
  44.                 for(int i = 0; i < ch.length; i++){
  45.                         if(ch[i] < '0' | ch[i] > '9'){
  46.                                 System.out.println("字符串中含有无法转换成数字的字符:"+ch[i]);
  47.                                 return false;
  48.                         }
  49.                 }
  50.                 return true;
  51.         }
  52.         public void calculator(){                //用于执行题目中所要求的过程
  53.                 if(verify()){
  54.                         decimalToBinary(Integer.parseInt(input));
  55.                         getStringResult();
  56.                         System.out.println("字符串"+input+"转换成二进制数是:"+stringResult);
  57.                 }else
  58.                         return;
  59.         }
  60. }
复制代码

作者: 多多    时间: 2013-9-4 09:09
行如止水 发表于 2013-8-29 18:06
这个是我写的转换类,能将十进制转换成二进制,要用到递归:

你写的真好!




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