java中给int赋值开头为0的数字的情况分析
在java中,定义int i=09;是错误的。
但定义int b=012;则是正确的。而且在输出b时,结果是10,而不是12.
其原因是因为java 把0开头的数字认定为8进制数。9>8.所以会报错。而012是8进制的12,等于十进制的10.
同理,在c语言中也会有相似的写法,就如0x表示16进制一样,0就表示八进制头
java中给int赋值开头为0的数字的情况分析
在java中,定义int i=09;是错误的。
但定义int b=012;则是正确的。而且在输出b时,结果是10,而不是12.
其原因是因为java 把0开头的数字认定为8进制数。9>8.所以会报错。而012是8进制的12,等于十进制的10.
同理,在c语言中也会有相似的写法,就如0x表示16进制一样,0就表示八进制头