[英]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.