0
내 프로그램을 Processing에 씁니다. 그러나이 언어 문제 만이 아니라고 생각합니다. 코드 :0 바이트 시프트 비트
long combine8(int array[]) {
long result = 0;
for (int i = 0; i<8; i++) {
byte byteval = (byte)array[i];
result |= (byteval<<(8*i));
}
return result;
}
이 기능은 8 바이트를 하나의 긴 값으로 결합합니다. 배열 값 중 하나가 0이 될 때까지 정상적으로 작동합니다. 그냥 무시합니다. 예를 들어
Array value: 1 binary 00000001
Array value: 0 binary 00000000
Array value: 0 binary 00000000
Array value: 0 binary 00000000
Array value: 0 binary 00000000
Array value: 160 binary 10100000
Array value: 255 binary 11111111
Array value: 25 binary 00011001
Result: 11111111111111111010000000000001
결과 값 인하여 진수 표시 int로 긴 파싱 절단하지만이 사정을 갖고, 그 제 16 개 비트를 참조 할 충분. 그것은 0 배열 값을 무시하고 1 후에 160을 썼습니다. 결과에 0을 적용 할 수있는 방법이 있습니까?
야생이지만 작동했습니다! 바이트로 캐스팅을 삭제하고 배열 요소를 캐스팅 한 후 오랫동안 작동했습니다. 감사! – PaulPonomarev