您的位置:首页 > 编程语言 > Java开发

写了一个10进制转换程序,无意发现JAVA int 类型的范围原来是这个!

2012-03-08 15:37 281 查看
且先看我的10进制转换成任意16以内进制代码:

package newpackage;

import java.util.*;

/**

*

* @author Administrator

*/

public class ShuZiJinZhiZhuanHuan

{

public static void main(String[]args)

{

Scanner in=new Scanner(System.in);

System.out.println("输入要转换的十进制数字n与要转换成的进制b:");

int n=in.nextInt();

int b=in.nextInt();

System.out.println("您输入的十进制数字是"+n+",转成"+b+"进制结果为"+baseString(n,b));

}

public static String baseString(int n,int b)

{

String str="",digitChar="0123456789abc";

if(n==0)

return "";

else

{

str=baseString(n/b,b);

return str+digitChar.charAt(n%b);

}

}

}

运行结果1:

run-single:

输入要转换的十进制数字n与要转换成的进制b:

2147483647 2

您输入的十进制数字是2147483647,转成2进制结果为1111111111111111111111111111111

BUILD SUCCESSFUL (total time: 46 seconds)

运行结果2:

run-single:

输入要转换的十进制数字n与要转换成的进制b:

2147483648 2

Exception in thread "main" java.util.InputMismatchException: For input string: "2147483648"

at java.util.Scanner.nextInt(Scanner.java:2097)

at java.util.Scanner.nextInt(Scanner.java:2050)

at newpackage.ShuZiJinZhiZhuanHuan.main(ShuZiJinZhiZhuanHuan.java:18)

结果2出现异常。。。

我们知道2的31次方是2147483648,以上的程序我用的是int型。故java int型最大值为2147483647即2^31-1。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: