바이트 배열이 있습니다.부호있는 바이트 배열을 부호없는 바이트로 변환
bytes[] = [43, 0, 0, -13, 114, -75, -2, 2, 20, 0, 0]
자바의 부호없는 바이트로 변환하고 싶습니다. 이 내가 무슨 짓 : 새로운 배열을 생성 &를 0xFF로 값을 복사 :
this.bytes = new byte[bytes.length];
for (int i=0;i<bytes.length;i++)
this.bytes[i] = (byte) (bytes[i] & 0xFF);
을하지만 값뿐만 아니라 새로운 배열에 부정적인있어. 내가 뭘 잘못 했니?
에는 서명이 없습니다를 Java의 바이트. – Sweeper
''byteValue & 0xFF''와 같은 연산을하기 위해서 무엇을 기대합니까? – f1sh
@ f1sh 그것은 서명 된 바이트를 unsigned'int'로 변환한다는 측면에서 옳은 일을합니다. 예를 들어 음수 값으로 바이트를 캐스팅 한 경우 'int'에'int'로 끝납니다. 그래서 코드의 일부는 문제가 아니며, 다시 시작한 것과 동일한 음수 값으로 끝나는 '바이트'에 되돌려 놓습니다 (다시 캐스팅되었습니다). – Lothar