A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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;
        }
}


评分

参与人数 2黑马币 +53 收起 理由
滔哥 + 50
船长 + 3 鼓励下

查看全部评分

12 个回复

正序浏览
感谢分享比较厉害
回复 使用道具 举报
这才是牛人呢,什么用不用的着的啊,最少我看来人家这不光是再练习基础,还能致用,怎么也比光学习练代码,做练习题感兴趣吧,又能学习了还能有乐趣,挺好的
回复 使用道具 举报
不错应用了基础知识
回复 使用道具 举报
代码挺明白的额
回复 使用道具 举报
。。。。什么都自己实现一下  基础才过硬啊
回复 使用道具 举报
lwj123 金牌黑马 2014-12-10 14:33:39
7#
DamonZh 发表于 2014-12-10 12:32
我觉得应该自己算 不要调用API这样是不是更好呢 面试要写的话肯定不会让你用API实现进制转换的 ...

但是sun都把api写好了,不用不是浪费,我们又不是写c语言,如果是c的话才需要自己算啊

点评

但是面试考你算法 而不是API的使用啊 而且原理搞明白了不就一劳永逸了吗  发表于 2014-12-11 08:39
回复 使用道具 举报
DamonZh 来自手机 中级黑马 2014-12-10 12:32:40
地板
我觉得应该自己算 不要调用API这样是不是更好呢 面试要写的话肯定不会让你用API实现进制转换的
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
提米特 发表于 2014-12-9 22:33
很多基础的东西自己学写一下加深印象很有用的。

楼主加油!

我也是这样觉得,复习到哪里,完了之后就写个小应用可以加深印象
回复 使用道具 举报
很多基础的东西自己学写一下加深印象很有用的。

楼主加油!
回复 使用道具 举报
额有API吧何必呢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马