에 32 비트 데이터를 변환합니다.나는 이런 식으로 뭔가를 부호없는 long 값
int[] r = { 4123, 2571 };
long result = ((r[1] & 0xFFFF) << 16 | (rs[0] & 0xFFFF));
System.out.prinln(result);
이 출력이되어야합니다 : 이 내 시도
편집 ... 10,111,627하지만 168497179.는 아마 내가 변환에 뭔가를 그리워하지만 생각이없는 얻을
이것은 값이 32 비트 레지스터에 배치되는 방법의 예입니다.
10111627은 내가 어떻게 보든 4123과 2571로 구성되지 않았습니다. 16 진수에서는 작은 부분이 0x101b와 0x0a0b이므로, 0x009a4a8b로 변환 할 수 없습니다. 출력 결과를 어떻게 알 수 있습니까? 그 부분부터 시작하는 것이 맞습니까? – harold
코드가 정확합니다. 테스트가 잘못되었습니다. – erickson
내 업데이트 된 게시물을 참조하십시오. 값이 32 비트 레지스터에 저장되는 방법과 결과가 어떻게 표시되는지 보여주는 이미지가 있습니다. 10111627 – Josef