2013-03-12 130 views
0

我想一個十六進制數轉換成十進制數,但它並不適用於非常大的值(十進制超過2,147,483,647)工作,因爲整型被限制在那裏。轉換十六進制數長整型

這裏是我的代碼,適用於整數

String nombreHexa = h2d.getText().toString(); 
      if (isHex(nombreHexa) == true) { 
       int deciInt = Integer.parseInt(nombreHexa, 16); 
       String newDeci = String.valueOf(deciInt); 
       resulth2d.setText(newDeci); 
      } 

我試圖讓deciInt一個long,但它不是那麼簡單。這個問題似乎來自parseInt函數功能(parseLong不存在爲好)

有人知不知道我應該怎麼辦呢?

+2

你需要什麼值的範圍來支持? – NPE 2013-03-12 10:59:08

+0

我不知道,但我認爲一個Int是不夠的。很抱歉的不精確性 – WhiskThimble 2013-03-12 11:09:57

回答

1

Whta的錯Long.parseLong(String num, int radix)

String nombreHexa = h2d.getText().toString(); 
     if (isHex(nombreHexa) == true) { 
      long deciLong = Long.parseLong(nombreHexa, 16); 
      String newDeci = String.valueOf(deciLong); 
      resulth2d.setText(newDeci); 
     } 
+0

我不知道當我嘗試它時發生了什麼問題,也許我忘了一些東西。但是用你的代碼,它可以工作。謝謝! 編輯:我的壞,我只是想出了什麼是錯的:我使用Long.Long(nombreHexa,16); (沒有解析) – WhiskThimble 2013-03-12 11:11:10

0

parseLong同樣存在。只要它只是一個尺寸問題,你可以使用它。