- 締切済み
byte[]→int
表題のことをしたいです。 int→byte[]はできたのですが、 それを戻すことができません。 どうすれば戻せるんでしょうか。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- spieder
- ベストアンサー率59% (13/22)
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)
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()); } }
- pcbeginner
- ベストアンサー率46% (261/560)
どのような手順で int→byte[] にしたのでしょうか? 逆の手順をすれば良いのでは? (Integer.toString(int)).getBytes() としたのであれば Integer.parseInt(new String(byte[])) ではないでしょうか? (コンパイルしてないので、間違ってるかもしれません。)