2014-05-08 96 views
0

我有這個十六進制值:C9E5249A表示二進制補碼有符號32位 C中的整數表示形式。 如何獲得其Java對應項?將十六進制(二進制補碼)轉換爲Java值

+0

你有一個十六進制值,或者你有一堆1和0的? –

+0

C9E5249A的實際十六進制值。 – Sergiu

+0

你從這個十六進制值得到的C中的數值是多少? –

回答

1

您只需撥打這個:

Integer.parseInt("C9E5249A", 16)

或實際...

Long.parseLong("C9E5249A", 16)

(因爲別人注意到你有這樣的十六進制值對於int類型太大)。

+2

我試過......它給了我這個: 線程「main」中的異常java.lang.NumberFormatException:對於輸入字符串:「C9E5249A」 \t at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) \t at java.lang.Integer.parseInt(Integer.java:495) \t at HelloWorld.main(HelloWorld.java:4) – Sergiu

+1

提到2的補碼讓我相信他可能真的有1和0,而不是Java程序中的實際十六進制值。 –

+2

@Sergiu由於用十六進制值表示的「整數」不適合整數。你可以嘗試'Long.parseLong(hex,16)',但是我不確定你真正想要達到什麼。 –

1

試試這個

Long.parseLong("C9E5249A", 16); 

C9E5249A是的Integer.parseInt太大,它解析字符串作爲一個符號的十進制整數,看到API

相關問題