二进制和十进制的学习理解

十进制与二进制都是数据记录的一种计数方法。对于一个数据,例如5555
可以写成5555 = 5 * 1000 + 5 *100+ 5*10+5*1
            =5*10^3 +5*10^2+5*10^1+5*10^0
对于十进制来说,10就是十进制的基数,同理2就是二进数的基数。
十进制的数位是10^n。二进制的位数是2^n。按照这个思路,我们还可以推导出⼋进制(以8为基数)、十六进制(以16为基数)等等计数法。


===============================华丽分割线=====================================
java代码对数据进行实现二进制与十进制的换算
========================================================================
import java.math.BigInteger;

public class mach1 {
    /**
     * @return String
     * @Descrition: 十进制转化成二进制
     * param decimalSource
     */
    public static String decimalToBinary(int decimalSource) {
        BigInteger bi = new BigInteger(String.valueOf(decimalSource));
        //转化为BigInterger类型,默认为十进制
        return bi.toString(2);
        //参数2指定的是转化为二进制
    }
   /**
    * @Description: 二进制转换成十进制
    * @param binarySource
    * @return int
    */
    public static int binaryToDecimal(String binarySource) {
        BigInteger bi = new BigInteger(binarySource, 2);
        //转化BigInterger类型,参数2指定的是二进制
        return Integer.parseInt(bi.toString());
        //默认转化为十进制
    }

    public static void main(String[] args) {
        int a = 53;
        String b = "110101";
        System.out.println(String.format("数字%d的二进制是%s", a, mach1.decimalToBinary(a))); //获取⼗进制数53的⼆进制数
        System.out.println(String.format("数字%s的十进制是%d", b, mach1.binaryToDecimal(b))); //获取⼆进制数110101的⼗进制数
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_42013825/article/details/86745275