码迷,mamicode.com
首页 > 微信 > 详细

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

时间:2018-10-11 20:07:19      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:new   bool   return   scan   检查   oid   lin   void   rem   

妈妈再也不用担心十进制数过大了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实现)

标签:new   bool   return   scan   检查   oid   lin   void   rem   

原文地址:https://www.cnblogs.com/xiaoxi666/p/9774610.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!