java如何处理八进制数和十进制数
我无法理解java如何存储指定为八进制和十六进制的值java如何处理八进制数和十进制数,java,Java,我无法理解java如何存储指定为八进制和十六进制的值 public class Test { public static void main ( String args[] ) { int a = 10 , b = 017 , c = 0X3A ; System.out.println( a + " " + b + " " + c) ; } } 此代码生成的输出是 10 15 58 对输出的详细解释会有很大帮助。请提前感谢基本上
public class Test {
public static void main ( String args[] )
{
int a = 10 , b = 017 , c = 0X3A ;
System.out.println( a + " " + b + " " + c) ;
}
}
此代码生成的输出是
10 15 58
对输出的详细解释会有很大帮助。请提前感谢基本上,如果指定的整数值以0开头,则视为八进制值,如果指定的整数值以0x开头,则视为十六进制值。由于易于理解,编程使用十进制。在java中,
“println”使用适当的“toString”方法转换值后输出单个值。默认情况下,toString()不显式传递任何基数值,并将值作为十进制类型的基数进行处理 对于您的代码片段,下面的插图将显示如何获得结果
输出:3a 17数字的内部实现是完全相同的。bin/hex/octa可以是外部表示。换句话说:一个数字不知道,是从bin/oct/hex/dec常量
017
octal是15 dec.3a
hex是58 dec.具体是什么让你困惑?不清楚你在说什么提问。请开发。有什么需要解释的?15十进制是15十进制,017八进制是15十进制,3A十六进制是58十进制。编译器在编译期间进行所有这些转换。Java不存储任何八进制或十六进制。转换发生在编译时。非常感谢。这是我期望的解释
**System.out.printf("%o %x",b,c);**