2012-08-27 49 views

回答

7

052octal(基數8)的文字。
0x2ahexadecimal(基數爲16)的文字。

+1

你是什麼意思? – OpMt

+0

請參閱Wikipedia鏈接。 – SLaks

+0

我明白了,謝謝!所以指數,他們從0開始到數字中有多少個整數/字母,所以在0x2a的情況下,16被提升到第三,然後是第二,然後是第一,然後是零功率? – OpMt

4

System.out.println(0x2a)使用六角字面(0x前綴表明這一點),其具有一個42十進制等效。

System.out.println(052)使用一個八進制字面(導致0指示此),其中有一個十進位等值是42

System.out.println將根據其十進制表示形式打印整數。如果要保留十六進制,請嘗試使用System.out.printf("%x\n", 0x2a),或者,對於八進制,請使用"%o"代替"%x"

+0

@ Slavemaster:感謝您的編輯。 – kosa

2

0520x2a42是寫(十進制,基部)數的所有不同的方式:

  • 052八進制,或鹼
  • 0x2a十六進制或基數
  • 42是大家熟悉的小數,基地

Java允許你在代碼中使用任何這些不同格式的字面意義使用號碼:使用前導0x指定十六進制或領先零,0來指定八進制。

這與二進制有關,因爲你用java做的任何事情都與二進制有關。

順便提一下,所述二進制,42基部表示爲:101010。您還可以在java中使用二進制文字,前面帶有0b,所以0b101010 == 0x2a

1

052,從0開始,所以這是一個八進制數,因此8 * 5 + 2 = 42 0x2a以0x開始,所以這是一個十六進制數,因此16×2 +α= 32 + 10 = 42

1

052是一個八進制文字,相當於0 * 8^2 + 5 * 8^1 + 2 * 8^00x2a是一個十六進制文字,相當於2 * 16^1 + 10 * 16^0

5 * 8 + 22 * 16 + 10可以被看作是等同的,因爲5 * 8相當於4 * 8 + 8,和8 + 2等於10