模板小程序任意长度十进制数转化为二进制(java实现)

Posted xiaoxi666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模板小程序任意长度十进制数转化为二进制(java实现)相关的知识,希望对你有一定的参考价值。

妈妈再也不用担心十进制数过大了233

import com.google.common.base.Strings;

import java.math.BigInteger;
import java.util.Scanner;

/**
 * 任意长度十进制数转化为二进制
 */
public class AnyNumberConverterFromDecimalToBinary {

    /**
     *
     * @param srcNum 待转换的十进制数
     * @return 二进制字符串
     */
    private static String convertFromDecimalToBinary(String srcNum){
        BigInteger src = new BigInteger(srcNum);
        StringBuilder sb = new StringBuilder();
        BigInteger zero = new BigInteger("0");
        BigInteger two = new BigInteger("2");
        while (!zero.equals(src)) {
            sb.append(src.remainder(two));
            src = src.divide(two);
        }
        return sb.reverse().toString();
    }

    /**
     * 格式检查
     * @param srcNum
     * @return 若可以转化为整数, 返回true; 否则返回false
     */
    private static boolean FormatCheck(String srcNum){
        if (Strings.isNullOrEmpty(srcNum)){
            return false;
        }
        if (!isDigit(srcNum)) {
            return false;
        }
        return true;
    }

    /**
     * 判断一个字符串中每个字符是否都为数字
     * @param strNum
     * @return 若每个字符都是数字, 返回true; 否则返回 false
     */
    private static boolean isDigit(String strNum) {
        return strNum.matches("[0-9]{1,}");
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String srcNum = sc.nextLine();
        if (!FormatCheck(srcNum)) {
            System.out.println("格式错误");
            return ;
        }
        System.out.println(convertFromDecimalToBinary(srcNum));
    }
    
}

以上是关于模板小程序任意长度十进制数转化为二进制(java实现)的主要内容,如果未能解决你的问题,请参考以下文章

将10进制数转化为2进制的C语言程序

模板小程序2~62位非负数任意进制转换,包含合法性检查

2.1 数值与编码

java中如何用程序判断字符串是不是为十进制数

用C语言编一个将十进制整数转化为16进制数的程序

蓝桥杯 十六进制转化为八进制