저는 엔디안에 대해 배우고 있으며 인텔 프로세서는 일반적으로 리틀 엔디안이라고 읽습니다. Im 인텔 맥에 그리고 나는 그것이 행동에서 그것을보기 위해 나 자신을 위해 그것을 시험해 볼 것이라고 생각했다. uint32_t
을 정의한 다음 메모리에서 정렬 된대로 4 바이트를 인쇄하려고합니다.왜이 uint32_t가 메모리에서 이렇게 정렬 되었습니까?
uint32_t integer = 1027;
uint8_t * bytes = (uint8_t*)&integer;
printf("%04x\n", integer);
printf("%x%x%x%x\n", bytes[0], bytes[1], bytes[2], bytes[3]);
출력 :
0403
3400
는 나도 역순 (3040
) 또는 변경에서 바이트를 볼 것으로 예상하지만 출력 것은 아닙니다. 나는 무엇을 놓치고 있습니까?
실제로 차이가 나는 경우 Im은 Xcode를 사용하여 Objective-C로 컴파일합니다.
아, 감사합니다. 덕분에 –