为什么这段代码用java打印16

为什么这段代码用java打印16,java,eclipse,unicode,ascii,Java,Eclipse,Unicode,Ascii,有人能解释这段代码背后的基本机制吗 System.out.println(0x10); 数字前面的0x或0x为十六进制格式 原因16: 0x1 0 1 * 16^1 + 0 * 16^0 = 1 * 16 + 0 * 1 = 16 + 0 = 16 这是一个十六进制数,十进制为16,0x表示编译器,在您的示例中,以下文字应为十六进制数,即10个十六进制或16个十进制0x10是16的十六进制形式,您是否希望它打印不同的内容?@AhmedAbdulka

有人能解释这段代码背后的基本机制吗

System.out.println(0x10);

数字前面的0x或0x为十六进制格式

原因16:

0x1          0

  1 * 16^1 + 0 * 16^0
= 1 * 16   + 0 * 1 
= 16       + 0 
= 16

这是一个十六进制数,十进制为16

0x
表示编译器,在您的示例中,以下文字应为十六进制数,即10个十六进制或16个十进制

0x10是16的十六进制形式,您是否希望它打印不同的内容?@AhmedAbdulkareem 0x表示十六进制,0b表示二进制,数字前的0表示八进制-因此,这里的十六进制10表示十进制16,Java以十进制格式输出答案:-)另请参见: