chenweitracy 发表于 2013-2-22 16:52:14

我是初学者 自己乱写了个整数进制转换 请教各位有些什么错误或者不足

package Tracy;

public class DecimalToOther {
       
        private DecimalToOther() {
                //
        }
       
        public static String getBin(int i) {
                StringBuffer s = new StringBuffer("");
                while(i != 0) {
                        if (i % 2 == 0)
                                s.insert(0, "0");
                        else
                                s.insert(0, "1");
                        i = i / 2;
                }
                String result = s.toString();
                return result;
        }
       
        public static String getHex(int i) {
                StringBuffer s = new StringBuffer("");
                while(i != 0) {
                        switch(i % 16) {
                                case 0 : s.insert(0, 0);break;
                                case 1 : s.insert(0, 1);break;
                                case 2 : s.insert(0, 2);break;
                                case 3 : s.insert(0, 3);break;
                                case 4 : s.insert(0, 4);break;
                                case 5 : s.insert(0, 5);break;
                                case 6 : s.insert(0, 6);break;
                                case 7 : s.insert(0, 7);break;
                                case 8 : s.insert(0, 8);break;
                                case 9 : s.insert(0, 9);break;
                                case 10 : s.insert(0, "A");break;
                                case 11 : s.insert(0, "B");break;
                                case 12 : s.insert(0, "C");break;
                                case 13 : s.insert(0, "D");break;
                                case 14 : s.insert(0, "E");break;
                                case 15 : s.insert(0, "F");break;
                        }
                        i = i / 16;
                }
                int size = s.length();
                s.insert(0, "0x");
                for (int k = 0;k < 8 - size;k++)
                        s.insert(2, 0);
                String result = s.toString();
                return result;
        }
       
        public static String getOct(int i) {
                StringBuffer s = new StringBuffer("");
                while(i != 0) {
                        switch(i % 8) {
                                case 0 : s.insert(0, 0);break;
                                case 1 : s.insert(0, 1);break;
                                case 2 : s.insert(0, 2);break;
                                case 3 : s.insert(0, 3);break;
                                case 4 : s.insert(0, 4);break;
                                case 5 : s.insert(0, 5);break;
                                case 6 : s.insert(0, 6);break;
                                case 7 : s.insert(0, 7);break;
                        }
                        i = i / 8;
                }
                s.insert(0, "0");
                String result = s.toString();
                return result;
        }
}

计算倒是正确 。

六月天 发表于 2013-2-22 19:34:39

问题倒是没什么问题,不过java的基础库就有这些转换的静态方法。
页: [1]
查看完整版本: 我是初学者 自己乱写了个整数进制转换 请教各位有些什么错误或者不足