차이점: 빅엔디안 모드에서는 워드 데이터의 상위 바이트가 하위 주소에 저장되고, 빅엔디안 저장 모드와는 반대로 워드 데이터의 하위 바이트가 상위 주소에 저장됩니다. 엔디안 저장 모드, 하위 주소 워드 데이터의 하위 바이트는 주소에 저장되고, 워드 데이터의 상위 바이트는 상위 주소에 저장됩니다.
이 문서의 운영 환경: Windows 7 시스템, Dell G3 컴퓨터.
관련 추천: "프로그래밍 입문"
빅 엔디안 모드와 리틀 엔디안 모드의 차이점
C 언어의 8비트 char 유형 외에도 16비트 유형도 있습니다. short형, 32bit long형(특정 컴파일러에 따라 다름) 16비트나 32비트 프로세서 등 8비트 이상의 프로세서의 경우 레지스터 폭이 1바이트보다 크기 때문에 변환 방법이 있어야 합니다. 여러 단어 축제 준비 문제. 이는 빅엔디안 저장 모드와 리틀엔디안 저장 모드로 이어집니다.
빅 엔디안 모드:
워드 데이터의 상위 바이트는 하위 주소에 저장되고, 워드 데이터의 하위 바이트는 상위 주소에 저장됩니다.
리틀엔디안 모드:
빅엔디안 저장 모드와 달리 리틀엔디안 저장 모드에서는 워드 데이터의 하위 바이트가 하위 주소에 저장되고, 워드 데이터의 상위 바이트가 저장됩니다. 상위 주소에 저장됩니다.
예를 들어, 16비트 폭의 숫자 0x1234는 리틀 엔디안 모드 CPU 메모리에 저장됩니다(주소 0x4000부터 시작하여 저장된다고 가정).
0x4001저장 내용 | 0x34 | 0x12 |
빅 엔디안 모드 CPU 메모리의 저장 방법은 다음과 같습니다. | 메모리 주소 | 0x4000 |
저장 내용 | 0x12 | 0x34 |
저장 방법 ian 모드 CPU 메모리의 용도: | 메모리 주소 | 0x4000 |
0x4003 | 스토어 콘텐츠 | 0x12 | 0x34 | |
0x78 | 우리가 흔히 사용하는 X86 구조는 리틀 엔디안 모드인 반면, KEIL C51은 빅 엔디안 모드입니다. 많은 ARM과 DSP는 리틀 엔디안 모드에 있습니다. 일부 ARM 프로세서는 하드웨어별로 빅엔디안 또는 리틀엔디안 모드를 선택할 수도 있습니다.참고: 빅 엔디안 방식을 사용하여 데이터를 저장하는 것은 일반적인 인간의 사고 방식과 일치하는 반면, 리틀 엔디안 방식을 사용하여 데이터를 저장하는 것은 컴퓨터 처리에 도움이 됩니다. | (제가 이해한 바: 리틀 엔디안 모드는 낮은 바이트에 낮은 비트를 넣습니다.) | 다음 코드는 컴파일러가 빅 엔디안인지 리틀 엔디안인지 테스트하는 데 사용할 수 있습니다.
int main() { short int x; char x0,x1; x=0x1122; x0=*((char*)&x); //低地址单元 ,或者((char*)&x)[0]; x1=*((char*)&x + 1); //高地址单元,或者((char*)&x)[1]; printf("x0=%x\nx1=%x\n",x0,x1); }
로그인 후 복사
x0= 0x11이면 큰 것입니다. endian; x0=0x22이면 리틀 엔디안입니다... |
위 내용은 빅 엔디안 모드와 리틀 엔디안 모드의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!