Java中各进制之间的表示

时间:2021-05-02 06:41:24

一个很小的点,在做题的时候被揪了出来

问  int i = 012; int j=034; int l=078; 在system.print.out()时为何值?

知识点:可以使用八进制、十六进制的类型:long, int, short, byte

八进制表示:以0作为前缀,数码有0,1,2,3,4,5,6,7,逢8进位
    如:8(十进制)-->010(八进制)

十六进制表示:以0x作为前缀,数码有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,逢16进位
    如:16(十进制)-->0x10(十六进制)


所以 int i=012; 为 8^2*0+8*1+2=10

073为 8^2*0+8*7+3=59 以此可以类推16进制的表达式。