[英]System.out.println for Java
System.out.println(052)
和System.out.println(0x2a)
都如何打印42?
这和二进制有关系吗?
System.out.println(0x2a)
使用十六进制文字( 0x
前缀表示此内容),其十进制等效值为42
。
System.out.println(052)
使用八进制文字(前导0
表示此),其十进制等效值为42
。
System.out.println
将根据它们的十进制表示形式打印整数。 如果要保留十六进制,请尝试System.out.printf("%x\\n", 0x2a)
,或者对于八进制,请使用"%o"
代替"%x"
。
052
, 0x2a
和42
是写入的所有不同的方式(十进制,基部10)编号42:
052
是八进制或以8为底 0x2a
为十六进制或以16为底 42
是熟悉的小数 ,以10为底 java允许您使用以下任何一种不同格式在代码中按字面使用数字:使用前导0x
指定十六进制,或使用前导零, 0
指定八进制。
这与二进制有关,因为与Java有关的一切都与二进制有关。
顺便说一句,42的二进制基数2表示为: 101010
。 您还可以在Java中使用二进制文字,方法是在它们前面加上0b
,这样0b101010 == 0x2a
。
052,从0开始,所以它是一个八进制数,因此8 * 5 + 2 = 42 0x2a从0x开始,所以它是一个十六进制数,因此16 * 2 + a = 32 + 10 = 42
052
是八进制文字,等效于0 * 8^2 + 5 * 8^1 + 2 * 8^0
。 0x2a
是十六进制文字,等效于2 * 16^1 + 10 * 16^0
。
5 * 8 + 2
和2 * 16 + 10
可以看作是等效的,因为5 * 8
等于4 * 8 + 8
,而8 + 2
等于10
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.