인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

entrpren2010님의 프로필 이미지

작성한 질문수

독하게 시작하는 C 프로그래밍

16진수 표기가 사용되는 예

64bit CPU에서의 메모리 주소 표현

해결된 질문

작성

·

72

0

"16진수 표기가 사용되는 예"의 6:20~6:34 에서 메모리에서 16진수를 사용한다고 말씀하셨습니다.

여기서 16byte로 메모리 주소를 사용한다고 설명 하시는데요. 사실은 8byte가 맞을까요?

답변 2

1

널널한 개발자님의 프로필 이미지
널널한 개발자
지식공유자

아니오. 16바이트가 맞습니다. Visual Studio 디버거 화면 상에 보이는 메모리 윈도우 화면에서 주소는 왼쪽에 0x프리픽스가 붙어 16진수로 표시되며 주소 값 자체는 10진수로 16씩 증가합니다. 그리고 '열'을 16으로 맞추고 있는데 이는 한 행에 보이는 메모리의 용량이 16바이트 임을 의미합니다.

64비트 시스템에서 메모리 주소 값 자체는 8바이트가 맞습니다. 그리고 주소는 1바이트 마다 부여해 관리됩니다. 해당 부분을 다시 보시고 한 번 더 생각해 보시기 바랍니다. 참, 이와 관련된 부분은 많은 분들이 자주 하시는 질문에 해당합니다. 감사합니다. 😄

entrpren2010님의 프로필 이미지
entrpren2010
질문자

답변 감사합니다 🙂
다시 확인해 보니, 두개의 16진수(4bit+4bit)가 하나의 데이터(1byte=8bit)를 구성하네요. 다른분들도 보실까 싶어, Memory View 샘플도 첨부하여 댓글로 남겨 봅니다!

image.png



0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. entrpren2010님.

64비트 시스템에서의 메모리 주소 체계에 대한 질문을 주셨군요. “16진수 표기가 사용되는 예” 강의의 해당 부분에서 다루고 있는 내용은 메모리의 주소가 64비트로 할당된다는 점입니다. 이는 메모리의 주소 자체가 64비트라는 의미이며, 각 주소는 고유한 64비트 형태로 표현됩니다.

그러나, 메모리 주소에서 ‘바이트’라는 용어는 메모리의 실제 크기를 의미하지는 않습니다. 메모리 내의 데이터 표현은 여전히 바이트 단위로 행해지며, 64비트 시스템에서의 주소는 8바이트(64비트)로 표현됩니다. 16진수 표기는 단지 데이터를 더 간결하게 나타내기 위한 방법입니다.

관련해서 보다 자세한 내용은 아래의 유사한 질문과 답변들을 참고하시면 이해에 큰 도움이 되실 것입니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.