原创

Java中十进制和二进制想换转换源码分享

二进制(binary)在数学和数字电路中指以2为基数的记数系统,以2为基数代表系统是二进位制的。这一系统中,通常用两个不同的符号0(代表零)和1(代表一)来表示 。

600,3/5,-7.99……看着这些耳熟能详的数字,你有没有想太多呢?

其实这都是全世界通用的十进制,即1.满十进一,满二十进二,以此类推……2.按权展开,第一位权为10^0,第二位10^1……以此类推,第N位10^(N-1),该数的数值等于每位位的数值*该位对应的权值之和。

image.png

十进制转换二进制,代码如下:

/**
 * @Description: 十进制转换成二进制
 * @param decimalSource
 * @return String
 */
public static String decimalToBinary(int decimalSource) {
	BigInteger bi = new BigInteger(String.valueOf(decimalSource)); // 转换成BigInteger类型
	return bi.toString(2); // 参数2 转化成X进制,默认10进制
}

BigInteger 类中 toString方法会返回一个“以文本方式表示”此对象的字符串。结果是一个简明但易于读懂的信息表达式。部分源码如下:

public String toString(int radix) {
        if (signum == 0)
            return "0";
        if (radix < Character.MIN_RADIX || radix > Character.MAX_RADIX)
            radix = 10;

        // Compute upper bound on number of digit groups and allocate space
        int maxNumDigitGroups = (4*mag.length + 6)/7;
        String digitGroup[] = new String[maxNumDigitGroups];
        ...

二进制转换十进制,代码如下:

/**
 * @Description: 二进制转换成十进制
 * @param binarySource
 * @return int
 */
public static int binaryToDecimal(String binarySource) {
	BigInteger bi = new BigInteger(binarySource, 2); // 转换为BigInteger类型
	return Integer.parseInt(bi.toString()); // 转换成十进制
}
~阅读全文~人机检测~

关注下方微信公众号“Java精选”(w_z90110),回复关键词领取资料:如Mysql、Hadoop、Dubbo、Spring Boot等,免费领取视频教程、资料文档和项目源码。

Java精选专注程序员推送一些Java开发知识,包括基础知识、各大流行框架(Mybatis、Spring、Spring Boot等)、大数据技术(Storm、Hadoop、MapReduce、Spark等)、数据库(Mysql、Oracle、NoSQL等)、算法与数据结构、面试专题、面试技巧经验、职业规划以及优质开源项目等。其中一部分由小编总结整理,另一部分来源于网络上优质资源,希望对大家的学习和工作有所帮助。

评论

分享:

支付宝

微信