java整数处理
当我运行这个程序时,它输出-43java整数处理,java,Java,当我运行这个程序时,它输出-43 public class Main { public static void main(String[] args) { int a=053; System.out.println(a); } } 为什么会这样?053是如何变成-43的?我不知道它是如何变成负数的,但以0开头的整数指定它是八进制(以8为基数)53是十进制中的43。它打印出43,而不是-43。这是因为如果你写一个前导为0的数字,它是一个八进制常数
public class Main {
public static void main(String[] args) {
int a=053;
System.out.println(a);
}
}
为什么会这样?053是如何变成-43的?我不知道它是如何变成负数的,但以
0
开头的整数指定它是八进制(以8为基数)<八进制中的代码>53是十进制中的43
。它打印出43,而不是-43。这是因为如果你写一个前导为0的数字,它是一个八进制常数
从这里开始
int octVal=032;//数字26,八进制
java教程
int decVal=26;//以十进制表示的数字26
int octVal=032;//数字26,八进制这是通过谷歌搜索“如何将八进制转换为十进制”
从八进制到十进制
从0开始计算十进制结果
删除最有效的八进制数字(最左边)并将其添加到结果中
如果所有的八进制数字都被删除了,那么就完成了。停下来
否则,将结果乘以8
转至步骤2
所以0+5=5,5*8=40,40+3=43,正如上面所说:
八进制数字由ASCII数字0后跟一个或多个数字组成
在ASCII数字0到7之间穿插下划线,并且可以
表示正整数、零整数或负整数
其格式为:
OctalNumeral:
0 OctalDigits
0 Underscores OctalDigits
所以,如果你使用
int octVal = 053;
或者
两个都是43。顺便说一句,在我的机器中它返回43,而不是-43nahh。。。我就在地球的另一边离最近的SOF服务器。。。我从来没有提供任何问题的第一个答案,我也不希望。。。这个问题(我怀疑)在我看到它之前已经有几分钟了。
int octVal = 053;
int octVal = 0_53;