他们认为是:
可能重复:
带有前导零的整数
但是如果你用前导零检查整数,那么你会发现问题是在jdk7启动之前是否因为研究工作较少而被问到.但是在jdk7中,整数有一些变化和补充.以下是涵盖jdk7的最新答案.
我有一个代码:
class Test{
public static void main(String[] args){
int x=09;
System.out.println(x);
}
}
Run Code Online (Sandbox Code Playgroud)
在编译时它会给出一个错误:整数过大:09
为什么这样做?
再次,如果我将代码更改为:
class Test{
public static void main(String[] args){
int x=012;
System.out.println(x);
}
}
Run Code Online (Sandbox Code Playgroud)
现在输出是10
为什么它输出10而不是12?
mik*_*iku 43
以...开头的数字0被认为是八进制 - 而9不是八进制数字(但是(传统上)0-7是).
十六进制文字以0x例如开头0xA.
直到Java 6,二进制文件没有文字表示法,你必须使用类似的东西
int a = Integer.parseInt("1011011", 2);
Run Code Online (Sandbox Code Playgroud)
其中第二个参数指定所需的基数.
Java 7现在具有二进制文字.
在Java SE 7中,也可以使用二进制数系统表示整数类型(byte,short,int和long).要指定二进制文字,请添加前缀
0b或0B数字.
Ern*_*ill 13
以数字0开头的整数是八进制(基数为8)的数字.最大的八进制数字是7; 07之后来010(等于小数8!)
012(八进制十二)是010(八进制十,即十进制8)加2或十进制10.
| 归档时间: |
|
| 查看次数: |
15471 次 |
| 最近记录: |