繁体   English   中英

Java版System.out.println

[英]System.out.println for Java

System.out.println(052)System.out.println(0x2a)都如何打印42?

这和二进制有关系吗?

052八进制 (以8为底)文字。
0x2a十六进制 (以16为底)文字。

System.out.println(0x2a)使用十六进制文字( 0x前缀表示此内容),其十进制等效值为42

System.out.println(052)使用八进制文字(前导0表示此),其十进制等效值为42

System.out.println将根据它们的十进制表示形式打印整数。 如果要保留十六进制,请尝试System.out.printf("%x\\n", 0x2a) ,或者对于八进制,请使用"%o"代替"%x"

0520x2a42是写入的所有不同的方式(十进制,基部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 + 22 * 16 + 10可以看作是等效的,因为5 * 8等于4 * 8 + 8 ,而8 + 2等于10

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM