零如何影响除法的结果

时间:2014-08-14 14:54:31

标签: java

int a=0234;
int result=a/100;
System.out.println("result is " + result);

输出:

  

结果是1

为什么result不是2

6 个答案:

答案 0 :(得分:7)

0234octal number,等于2 * 82 + 3 * 81 + 4 * 80,即156

然后156/100 = 1(由于integer division

答案 1 :(得分:6)

因为0234Octal号码。

当您在数字常量前面附加零时,Java会将其视为Octal数字。

如果将其转换为十进制数系统,则它等于156,除以十进制100得到1(由于整数除法)。

答案 2 :(得分:2)

这是一个文字八进制整数。所以十进制0234是156,而不是234。

之后,您的代码执行整数除法,因此156/100 = 1.

更多信息:

答案 3 :(得分:2)

0234是一个八进制数,等于156.整数除法规则然后执行截断,结果为1.请参阅JLS 3.10.1

  

八进制数字由ASCII数字0后跟一个或多个散布有下划线的ASCII数字0到7组成,并且可以表示正整数,零整数或负整数。

答案 4 :(得分:1)

以0开头的整数文字被解释为八进制数,而不是十进制数。所以0234实际上是十进制156的八进制。因此156/100 = 1整数除法。

答案 5 :(得分:1)

当你声明一个int以0开头并且不包含任何大于7的数字时,java将其视为八进制数。 因此0236实际上是236基数8,即156 然后156/100 = 1