2012-09-13 352 views
0

誰能告訴我這兩者之間的區別嗎?類似於但輸出是不同十六進制串&十六進制

int b = 80 ; 
    int a = Integer.parseInt(""+b, 16); 
    int c = Integer.parseInt(Integer.toHexString(b)); 
+0

[引用Integer.toHexString()'。。]的API(http:// docs .oracle.com/javase/7/docs/api/java/lang/Integer.html#toHexString(int)) – Makoto

+0

第一個解析「80」是一個整數的十六進制表示,即'128'十進制。第二個將十進制中的「80」轉換爲其十六進制表示,即「50」 - ,然後將其解析爲一個十進制表示爲「50」的整數。 – oldrinb

回答

4

int a = Integer.parseInt(""+b, 16)解釋"80"作爲基16號,並設置到它的值(128在基座10)。

int c = Integer.parseInt(Integer.toHexString(b))第一轉換80在底座10的底座16號(這是50),然後這個解釋在鹼10-這是50一個數字。

0

一個轉換爲十進制並將其解析爲hexi-decimal。

另一個轉換爲hexi-decimal並將其解析爲十進制。

如果沒有任何意義,那是件好事。 )

0

第一個表達式,Integer.parseInt(""+b, 16)被解析值80爲十六進制數(0x80的),導致128

第二個表達式Integer.parseInt(Integer.toHexString(b))第一十進制數轉換十進制數80爲十六進制(Integer.toHexString(b) )導致十六進制數50(0x50),然後解析爲十進制數,結果爲十進制數50.