zoukankan      html  css  js  c++  java
  • 【模板小程序】任意长度非负十进制数转化为二进制(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");
            if (zero.equals(src)) {
                return "0";
            }
            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));
        }
        
    }
    
    
    

    我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=ila0vet4vyqn

  • 相关阅读:
    CF1174D Ehab and the Expected XOR Problem
    CF1083B The Fair Nut and Strings
    CF1088D Ehab and another another xor problem
    CF1168A Increasing by Modulo
    CF1166C A Tale of Two Lands
    CF1142A The Beatles
    CF1105D Kilani and the Game
    【uva11248】网络扩容
    【sam复习】用sam实现后缀排序
    【Educational Codeforces Round 19】
  • 原文地址:https://www.cnblogs.com/xiaoxi666/p/9774610.html
Copyright © 2011-2022 走看看