Я пытаюсь преобразовать подписанную переменную int в 3-байтовый массив и назад.Java-массив Array для подписанного Int
В функции getColorint, я преобразовываю значение int в массив байтов. Это прекрасно работает!
public byte [] getColorByte(int color1){
byte[] color = new byte[3];
color[2] = (byte) (color1 & 0xFF);
color[1] = (byte) ((color1 >> 8) & 0xFF);
color[0] = (byte) ((color1 >> 16) & 0xFF);
return color;
}
Но если я пытаюсь преобразовать массив байтов обратно в Integer с функции getColorint:
public int getColorint(byte [] color){
int answer = color [2];
answer += color [1] << 8;
answer += color [0] << 16;
return answer;
}
это работает только для положительных целых значений.
Вот скриншот во время отладки:
Мой вход INT значение -16673281 но мой выход INT значение .
Может ли кто-нибудь мне помочь?
Спасибо :)
http://stackoverflow.com/questions/11981966/byte-array-to-signed-int – floyd