誰能告訴我這兩者之間的區別嗎?類似於但輸出是不同十六進制串&十六進制
int b = 80 ;
int a = Integer.parseInt(""+b, 16);
int c = Integer.parseInt(Integer.toHexString(b));
誰能告訴我這兩者之間的區別嗎?類似於但輸出是不同十六進制串&十六進制
int b = 80 ;
int a = Integer.parseInt(""+b, 16);
int c = Integer.parseInt(Integer.toHexString(b));
int a = Integer.parseInt(""+b, 16)
解釋"80"
作爲基16號,並設置到它的值(128
在基座10)。
int c = Integer.parseInt(Integer.toHexString(b))
第一轉換80
在底座10的底座16號(這是50
),然後這個解釋在鹼10-這是50
一個數字。
一個轉換爲十進制並將其解析爲hexi-decimal。
另一個轉換爲hexi-decimal並將其解析爲十進制。
如果沒有任何意義,那是件好事。 )
第一個表達式,Integer.parseInt(""+b, 16)
被解析值80爲十六進制數(0x80的),導致128
第二個表達式Integer.parseInt(Integer.toHexString(b))
第一十進制數轉換十進制數80爲十六進制(Integer.toHexString(b)
)導致十六進制數50(0x50),然後解析爲十進制數,結果爲十進制數50.
[引用Integer.toHexString()'。。]的API(http:// docs .oracle.com/javase/7/docs/api/java/lang/Integer.html#toHexString(int)) – Makoto
第一個解析「80」是一個整數的十六進制表示,即'128'十進制。第二個將十進制中的「80」轉換爲其十六進制表示,即「50」 - ,然後將其解析爲一個十進制表示爲「50」的整數。 – oldrinb