![왜 소수점 값을 잘못 계산합니까?](https://linux55.com/image/46026/%EC%99%9C%20%EC%86%8C%EC%88%98%EC%A0%90%20%EA%B0%92%EC%9D%84%20%EC%9E%98%EB%AA%BB%20%EA%B3%84%EC%82%B0%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
이 질문은 이 질문에 대한 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