왜 소수점 값을 잘못 계산합니까?

왜 소수점 값을 잘못 계산합니까?

이 질문은 이 질문에 대한 enzotib의 답변과 관련이 있습니다.바이너리 파일에서 2바이트를 찾아 값을 늘리고 Bash를 사용하여 바꾸는 방법은 무엇입니까?

이는 2바이트를 16진수 값으로 변환합니다.

$ echo -n $'\x1b\x1f' | od -tx2
0000000 1f1b
0000002

하지만 이제 이것은 십진수 값을 제공해야 합니다.

echo -n $'\x1b\x1f' | od -tu2
0000000  7963
0000002

하지만 16진수 값을 10진수로 변환하면 다음과 같아야 합니다.

$ printf "%d" 0x1b1f
6943

왜 그런 겁니까? od잘못된 십진수 출력을 사용하고 있습니까?

답변1

당신은 실행 od중 입니다리틀 엔디안 방식기계.

>>> 0x1f1b
7963

관련 정보