내가 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