> 일반적인 문제 > 빅 엔디안 모드와 리틀 엔디안 모드의 차이점은 무엇입니까?

빅 엔디안 모드와 리틀 엔디안 모드의 차이점은 무엇입니까?

青灯夜游
풀어 주다: 2023-01-13 00:23:14
원래의
45734명이 탐색했습니다.

차이점: 빅엔디안 모드에서는 워드 데이터의 상위 바이트가 하위 주소에 저장되고, 빅엔디안 저장 모드와는 반대로 워드 데이터의 하위 바이트가 상위 주소에 저장됩니다. 엔디안 저장 모드, 하위 주소 워드 데이터의 하위 바이트는 주소에 저장되고, 워드 데이터의 상위 바이트는 상위 주소에 저장됩니다.

빅 엔디안 모드와 리틀 엔디안 모드의 차이점은 무엇입니까?

이 문서의 운영 환경: Windows 7 시스템, Dell G3 컴퓨터.

관련 추천: "프로그래밍 입문"

빅 엔디안 모드와 리틀 엔디안 모드의 차이점

C 언어의 8비트 char 유형 외에도 16비트 유형도 있습니다. short형, 32bit long형(특정 컴파일러에 따라 다름) 16비트나 32비트 프로세서 등 8비트 이상의 프로세서의 경우 레지스터 폭이 1바이트보다 크기 때문에 변환 방법이 있어야 합니다. 여러 단어 축제 준비 문제. 이는 빅엔디안 저장 모드와 리틀엔디안 저장 모드로 이어집니다.

빅 엔디안 모드:

워드 데이터의 상위 바이트는 하위 주소에 저장되고, 워드 데이터의 하위 바이트는 상위 주소에 저장됩니다.

리틀엔디안 모드:

빅엔디안 저장 모드와 달리 리틀엔디안 저장 모드에서는 워드 데이터의 하위 바이트가 하위 주소에 저장되고, 워드 데이터의 상위 바이트가 저장됩니다. 상위 주소에 저장됩니다.

예를 들어, 16비트 폭의 숫자 0x1234는 리틀 엔디안 모드 CPU 메모리에 저장됩니다(주소 0x4000부터 시작하여 저장된다고 가정).

0x4001

저장 내용

0x34

0x12

빅 엔디안 모드 CPU 메모리의 저장 방법은 다음과 같습니다.

메모리 주소

0x4000
0x4001

저장 내용

0x12

0x34

저장 방법 ian 모드 CPU 메모리의 용도:

메모리 주소

0x4000
0x4001

0x40020x56다음 코드는 컴파일러가 빅 엔디안인지 리틀 엔디안인지 테스트하는 데 사용할 수 있습니다. 더 많은 관련 글을 보시려면 PHP 중국어 홈페이지

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿