プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (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));
}

こんな感じでどうでしょう?
    • good
    • 1

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());
}
}
    • good
    • 1

どのような手順で


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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!