16 진 덤프 대 실제 파일 내용 ?>이것을 얻는다 : 5aacfb5a8dc0155dd0269124c9e81789 그렇다면 왜 hexdump ac5a5afbc08d5d1526d02491e8c98917가 PHP가

내가 hexdump filename.txt출력 할 때 다음을 얻습니다.

00000000 ac5a 5afb c08d 5d15 26d0 2491 e8c9 8917
00000010

내가 할 때 나는 <?= bin2hex(file_get_contents('filename.txt')); ?>이것을 얻는다 :

5aacfb5a8dc0155dd0269124c9e81789

그렇다면 왜 hexdump ac5a5afbc08d5d1526d02491e8c98917가 PHP가 제안 해야 할 때 내용을 제안해야 5aacfb5a8dc0155dd0269124c9e81789합니까? 16 진수 덤프의 출력을 올바르게 해석하지 못합니까?



답변

차이점은 빅 엔디안 대 리틀 엔디안 순서 입니다.

hexdump 출력의 처음 4 바이트로 시작하십시오 ac5a 5afb. 이제 바이트 순서를 바꾸어 다음을 얻으십시오.

5aac fb5a

이것을 PHP 출력과 비교하십시오.

5aac fb5a

일치합니다.

기본적으로 BSD hexdump는 시스템의 엔디안을 기반으로 출력을 표시합니다. 원하지 않으면 -C단어 단위로 출력하는 것이 아니라 바이트 단위로 출력 하는 옵션을 지정할 수 있습니다 .

$ hexdump filename.txt
0000000 ac5a 5afb c08d 5d15 26d0 2491 e8c9 8917
0000010
$ hexdump -C filename.txt
00000000  5a ac fb 5a 8d c0 15 5d  d0 26 91 24 c9 e8 17 89  |Z..Z...].&.$....|
00000010


답변