그래, 여기에 거래가 있습니다. 바이너리 파일에서 한 번에 1 바이트 씩 읽습니다. 그리고 나서이 같은 INT 변수에 넣어 :이진 데이터를 C로 정수로 변환
l = *rbyte;
l <<8;
<read another byte>
l |=*rbyte;
l <<8;
<read another byte>
l |=*rbyte;
l <<8;
<read another byte>
l |=*rbyte;
지금이 아마도 잘 작동하고, 13 반환 00 00 00 0 D 같은 이진 데이터해야하고, 6 그와 그러나 제위한 추천 이진 데이터 00 00 80 00, 단순히 128을 반환합니다. 실제로 32768을 반환해야 할 때. 무엇을 제공합니까?
에
변경하여 시프트 라인 –
... 솔루션 부호없는 int 또는 long INT를 사용해보십시오 :'L = 1 << 8'을, 당신은 단지'단지 승/결과를 저장하지 않고 계산된다 l << 8' – nhahtdh
O 예! 조금도! 바로 위에! – digvijay91