16 진 덤프가 시스템의 엔디안을 존중합니까?


23

내 컴퓨터에서 이러한 명령을 실행하면 다음과 같은 출력이 나타납니다.

$ echo foos > myfile
$ hexdump myfile
6f66 736f 000a

16 진 덤프의 출력은 리틀 엔디안입니다. 이것은 내 컴퓨터가 리틀 엔디안이거나 16 진수 덤프가 항상 리틀 엔디안 형식을 사용한다는 것을 의미합니까?

답변:


33

전통적인 BSD hexdump유틸리티는 플랫폼의 엔디안을 사용하므로, 결과는 머신이 리틀 엔디안임을 의미합니다.

플랫폼의 엔디안과 상관없이 일관된 바이트 단위 출력을 얻으려면 hexdump -C(또는 od -t x1)를 사용하십시오 .


5

맨 페이지에서 :

 -x      Two-byte hexadecimal display.  Display the input offset in hexa‐
         decimal, followed by eight, space separated, four column, zero-
         filled, two-byte quantities of input data, in hexadecimal, per
         line.

...

 If no format strings are specified, the default display is equivalent to
 specifying the -x option.

출력은 리틀 엔디안 (최소 바이트 우선)이며, 아마도 사용중인 x86 및 x86_64 아키텍처의 엔디안이기도합니다.


3
나만입니까 아니면 맨 페이지에서 "2 바이트 수량"을 정수로 취급한다고 언급하지 않습니까? 나는 약을 복용하는 줄 알았는데 ...
슬래 싱 무기

@slashingweapon "2 바이트 수량의 입력 데이터" uint16_t 정수입니다.
Ruslan

리틀 엔디안 시스템에서 "2 바이트"는 uint16_t와 동일하지 않습니다.
slashingweapon 16:10에
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.