• 締切済み

byte[]→int

表題のことをしたいです。 int→byte[]はできたのですが、 それを戻すことができません。 どうすれば戻せるんでしょうか。 よろしくお願いします。

みんなの回答

  • spieder
  • ベストアンサー率59% (13/22)
回答No.3

byte型は、プリミティブ型なのでそのままキャストするだけでも int型になりますよ。ただint型は、符号付なので128以上は マイナスと表現されてしまうので、注意が必要です。 byte[] byteArray; for (int i = 0; i < byteArray.length; i++) { int d = byteArray[i]; if (d < 0) {     //byte型では128~255が負値になっているので補正 d += 256; } System.out.println(Integer.toString(d, 16)); } こんな感じでどうでしょう?

  • world99
  • ベストアンサー率64% (20/31)
回答No.2

java.math.BigIntegerクラスを利用すれば、簡単に変換できますよ。 以下、サンプルソースになります。ご参考にして下さい。 ==================== ソース ==================== import java.math.BigInteger; public class Convert { public static void main(String[] args) { byte[] b = new BigInteger("12").toByteArray(); BigInteger bi = new BigInteger(b); System.out.println(bi.intValue()); } }

回答No.1

どのような手順で int→byte[] にしたのでしょうか? 逆の手順をすれば良いのでは? (Integer.toString(int)).getBytes() としたのであれば Integer.parseInt(new String(byte[])) ではないでしょうか? (コンパイルしてないので、間違ってるかもしれません。)

関連するQ&A