2017-07-19 158 views
0

我有一個字符串作爲「5F2A」十六進制。我想將其轉換爲int 0x5F2A。Java - 十六進制字符串表示爲整數十六進制

String str = "5F2A"; 
int number = someOperation(str); 

而且數應爲(以0x)

0x5F2A

這可能嗎?

要改寫和分享我今天

Map<Integer, String> map = new HashMap<>(); 
map.put(0x5F2A, "somevalue"); 

System.out.println(map.get(24362)); 
System.out.println(map.get(0b0101111100101010)); 

學會會爲這兩個值somevalue

+1

不,這是不可能的。 'System.out.println(number);'將始終以十進制輸出,而不是十六進制。你可以使用'System.out.format'。 –

+0

我不想打印它。我想用它作爲Integer。例如'int i = 0x5F2A;' –

+0

'int number = Integer.parseInt(str,16);'將基本16(十六進制)的'String'轉換爲'int'。 – Flown

回答

3

沒有轉變所需:

System.out.println("0x" + str); 

並打開任意INT爲十六進制表示:

Integer.toHexString(intNumber); 

這應該是所有你需要起來啦!

+0

它仍然是字符串。我想要整數。 –

+0

@AshutoshVaidya你可以通過['Integer.parseInt(String,int)'](https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html# parseInt函數(java.lang.String中,%20int))。 – Izruo

+0

它會給我一個十進制數字作爲24362.我需要作爲'int n = 0x5F2A;' –

1

int i = 0x5F2A不是真的沒什麼意思,因爲在內存中,全部是二進制的,在打印時它的問題

String str = "5F2A"; 
int number = Integer.parseInt(str, 16); //alows to store an int, binary 0101111100101010 

System.out.println(number);      //24362 (decimal by default) 
System.out.println(Integer.toHexString(number)); //5f2a (hexa possible too) 

默認情況下,它只是,它打印在(二進制成)十進制格式,但您可以打印在六格式,但int i = 0x5F2A100%相同作爲int i = 24362

+0

謝謝。我不知道數字可以互換使用。 –

0

參見here

Integer.parseInt(/*your String*/, 16); 

16是十六進制的基數。

相關問題