黑马程序员技术交流社区

标题: 刚写好一个进制转化的工具,已测试过。分享一下。 [打印本页]

作者: lwj123    时间: 2014-12-9 15:55
标题: 刚写好一个进制转化的工具,已测试过。分享一下。
package _interface;

/**
* 将一个16进制的数转化为整数
*
* @author hskd
*
*/
public class IntDemo {
        public static void main(String[] args) {

                /*
                 * 测试16进制转化n进制
                 */
                System.out.println("3cef转化为10进制之后:" + change(16, 10, "3cef"));
                System.out.println("3cef转化为2进制之后:" + change(16, 2, "3cef"));
                System.out.println("3cef转化为2进制之后:" + change(16, 8, "3cef"));
                /*
                 * 测试10进制转化n进制
                 */
                System.out.println("15转化为16进制之后:" + change(10, 16, "15"));
                System.out.println("3转化为2进制之后:" + change(10, 2, "3"));
                System.out.println("8转化为8进制之后:" + change(10, 8, "8"));
                /*
                 * 测试2进制转化为n进制
                 */
                System.out.println("11110011101111转化为16进制之后:"
                                + change(2, 16, "11110011101111"));
                System.out.println("11110011101111转化为10进制之后:"
                                + change(2, 10, "11110011101111"));
                System.out.println("11110011101111转化为8进制之后:"
                                + change(2, 8, "11110011101111"));
        }

        /**
         * 工具类
         *
         * @param radix1
         *            需要转化的数据的进制
         * @param radix2
         *            需要将该数据转化为什么进制
         * @param str
         *            需要转化为内容
         * @return
         */
        public static Object change(int radix1, int radix2, String str) {
                switch (radix1) {
                case 10:// 10进制转化为其他进制
                        if (radix2 == 2) {// 10进制转化为2进制
                                return Integer.toBinaryString(Integer.parseInt(str));
                        }
                        if (radix2 == 8) {// 10进制转化为8进制
                                return Integer.toOctalString(Integer.parseInt(str));
                        }
                        if (radix2 == 16) {// 16进制转化为2进制
                                return Integer.toHexString(Integer.parseInt(str));
                        }
                        break;
                case 16:// 16进制转化为其他进制
                        if (radix2 == 10) {
                                return Integer.valueOf(str, radix1).toString();
                        }
                        if (radix2 == 8) {// 16进制转化为8进制
                                return Integer.toOctalString(Integer.valueOf(str, 16));
                        }
                        if (radix2 == 2) {// 16进制转化为2进制
                                return Integer.toBinaryString(Integer.valueOf(str, radix1));
                        }
                        break;

                case 2:// 2进制转化为其他进制
                        if (radix2 == 10) {
                                return Integer.valueOf(str, radix1).toString();
                        }
                        if (radix2 == 8) {// 16进制转化为8进制
                                return Integer.toOctalString(Integer.parseInt(str, radix1));
                        }
                        if (radix2 == 16) {// 2进制转化为16进制
                                return Integer.toHexString(Integer.parseInt(str, radix1));
                        }
                        break;

                default:
                        break;
                }
                return null;
        }
}



作者: wangcongwu    时间: 2014-12-9 19:49
额有API吧何必呢
作者: 提米特    时间: 2014-12-9 22:33
很多基础的东西自己学写一下加深印象很有用的。

楼主加油!
作者: lwj123    时间: 2014-12-10 08:54
提米特 发表于 2014-12-9 22:33
很多基础的东西自己学写一下加深印象很有用的。

楼主加油!

我也是这样觉得,复习到哪里,完了之后就写个小应用可以加深印象
作者: 双鱼座程序员    时间: 2014-12-10 12:06
谢谢分享
作者: DamonZh    时间: 2014-12-10 12:32
我觉得应该自己算 不要调用API这样是不是更好呢 面试要写的话肯定不会让你用API实现进制转换的
作者: lwj123    时间: 2014-12-10 14:33
DamonZh 发表于 2014-12-10 12:32
我觉得应该自己算 不要调用API这样是不是更好呢 面试要写的话肯定不会让你用API实现进制转换的 ...

但是sun都把api写好了,不用不是浪费,我们又不是写c语言,如果是c的话才需要自己算啊
作者: zhouli_2014    时间: 2014-12-10 20:26
。。。。什么都自己实现一下  基础才过硬啊
作者: 王晓杰    时间: 2014-12-19 08:40
代码挺明白的额
作者: 我只是一只菜鸟    时间: 2014-12-19 08:55
不错应用了基础知识
作者: 南柯一梦境    时间: 2014-12-19 10:14
这才是牛人呢,什么用不用的着的啊,最少我看来人家这不光是再练习基础,还能致用,怎么也比光学习练代码,做练习题感兴趣吧,又能学习了还能有乐趣,挺好的
作者: 孟子飞宏    时间: 2014-12-19 12:07
感谢分享比较厉害




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