问题描述
- 为什么我写的这个二进制转十进制的不能转换比较大的数
-
一输入比较长的二进制数就显示不是二进制数 是在boolean那里出的问题吗 不知道怎么修改才能正常运行
比如输入10011010010 能显示1234import java.util.Scanner;
public class Binary {// Returns decimal representation of given binary number. public static int toDecimal(String b) { // TODO int decimal = Integer.parseInt(b,2); return decimal; } // Returns whether or not given string is a binary number. public static boolean isBinary(String b) { // TODO int inputNum = Integer.parseInt(b); while(inputNum != 0){ if(inputNum % 10 > 1){ return false; } inputNum = inputNum / 10; } return true; } public static void main(String[] args) { // TODO System.out.print("Enter binary: "); Scanner in = new Scanner(System.in); String binaryNum = in.next(); try{ int intNum = Integer.parseInt(binaryNum); boolean isBinary = isBinary(binaryNum); if(isBinary){ int outputDecimal = toDecimal(binaryNum); System.out.println("n"+ outputDecimal +" in decimal"); }else{ System.out.println("n" + "Not binary!"); } }catch(Exception e){ System.out.println("n" + "Not binary!"); } }
}
解决方案
...额 已经会弄了。大家不用看这问题了
Integer 长度超了 用Long就行了
时间: 2024-10-21 15:34:25