어떤 프로그램에서 값을 1 2 3 4 5 6 7 8 9 이렇게 차례대로 넣고 저장해서
그 파일을 헥스 에디터로 까보면 16256, 16384 이런 식으로 저장되어 있는데
이건 왜 이런건가여?
암만봐도 모르겠어여...
1 -- 16256 (00111111 10000000)
2 -- 16384 (01000000 00000000)
3 -- 16448 (01000000 01000000)
4 -- 16512 (01000000 10000000)
5 -- 16544 (01000000 10100000)
6 -- 16576 (01000000 11000000)
7 -- 16608 (01000000 11100000)
8 -- 16640 (01000001 00000000)
9 -- 16656 (01000001 00010000)
이건 그냥 기계어임 컴터안에 메모리에 항상 순서대로 정렬해서 저장하지 않음
엌ㅋㅋㅋ맛나욬ㅋㅋㅋㅋㅋ
아녀아녀, 제가 묻고 싶은 건 1을 넣으면 상식적으로 바이너리 파일에도 1이 들어가고(2진수로도 1이 나오고), 십진수로 16을 써넣으면 0F라고 써져있어야 할텐데(2진수로는 10000), 이건 1을 넣으면 위에처럼 (위에는 10진수랑 2진수로 적어놨지만) 3F80이라고 2바이트씩 차지해서 나오더라고여. 이게 왜 그런지 궁금해서 그래여. 보수...같진 않고...
signed/unsigned, little/big endian을 고려해야 쌩 바이너리로 알아볼 수 있음
dot님 답변 읽고 음수표현(signed)땜에 저렇게 찍혀나왔단 생각이 들었습니다... 감사합니다...