package com.xxx.transfer; /** * 数字进制相互转换 * @see JDK中提供了这些功能 * @author le.li * */ public class NumberUtil { public static void main(String[] args) { // 通过X的n次方相加的方式,将二进制转换成十进制 System.out.println(binary2Decimal("1001")); // 通过取余数的方式,将十进制转成二进制 System.out.println(decimal2Binary(9)); // jdk中二进制转十进制方式 System.out.println(Integer.parseInt("1001", 2)); // jdk中十进制转二进制方式 System.out.println(Integer.toBinaryString(9)); System.out.println(Integer.toString(9, 2)); } /** * 二进制转十进制 * @param number * @return */ public static int binary2Decimal(String number) { return scale2Decimal(number, 2); } /** * 其他进制转十进制 * @param number * @return */ public static int scale2Decimal(String number, int scale) { checkNumber(number); if (2 > scale || scale > 32) { throw new IllegalArgumentException("scale is not in range"); } // 不同其他进制转十进制,修改这里即可 int total = 0; String[] ch = number.split(""); int chLength = ch.length; for (int i = 0; i < chLength; i++) { total += Integer.valueOf(ch[i]) * Math.pow(scale, chLength - 1 - i); } return total; } /** * 二进制转十进制 * @param number * @return */ public static String decimal2Binary(int number) { return decimal2Scale(number, 2); } /** * 十进制转其他进制 * @param number * @param scale * @return */ public static String decimal2Scale(int number, int scale) { if (2 > scale || scale > 32) { throw new IllegalArgumentException("scale is not in range"); } String result = ""; while (0 != number) { result = number % scale + result; number = number / scale; } return result; } public static void checkNumber(String number) { String regexp = "^\\d+$"; if (null == number || !number.matches(regexp)) { throw new IllegalArgumentException("input is not a number"); } } }
le.li
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2018-12-23 BAT:文件中替换字符(保留空格和换行)