2014-05-08 71 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

相关问题