【模板小程序】任意長度十進制數轉化為二進制(java實現)
阿新 • • 發佈:2018-10-11
轉換 obi number 格式 bigint reverse com rev ole
媽媽再也不用擔心十進制數過大了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實現)