메모리 주소가 16진수로 표현되는 이유??
동백
2023.04.01
printf 에서 서식지정을 %p로 해주면 메모리 주소가 16진수로 표현되던데요 ..
c언어 책들의 포인터 관련 챕터를 봐도 메모리를 그려놓고 16진수로 주소값을 표현하던데
특별히 이유가 있나요???
-
갈매빛
으음~~~
-
꺆잉
한 바이트가 8비트인 것과 관련이 있습니다.
-
앵초
정확한 이유라고 정의될 수 있는것은 없지만, 가장 근접한 이유는 예전 리얼 모드상에서 16진수로 메모리를 표시하고 계산하는것이 가장 유리했었기때문입니다. 10진수로 계산하려면 한 세그먼트당 16을 곱해줘야되는데 16진수로 계산하면 그냥 10을 곱해주면(뒤에 0만 붙여주면)되므로 예전에 간단해서 사용했던 16진수 표현법을 메모리주소로 아직까지 사용하는것으로 추정됩니다. (짧게 표현할 수 있는 장점도 있지요)
-
둘빛
음 시작하기전에 개인적인 생각임을 밝힙니다.컴퓨터는 2진수를 쓰죠. 전기신호만 인식이 가능하죠. 0과 1로요. 그러면 메모리도 2진수로 표현을 하면 어떻게 될까요? 2진수를 보시면 아시겠지만 길이도 길이거니와 단순히 이게 무엇인지 판단하기도 힘듭니다. 하지만 16진수는 2의 4승이니 변환하기도 편하며 길이도 짧거니와 사람들이 사용하기에도 2진수보다는 보고 판단하고 사용하기가 편리 합니다. 그래서 16진수를 쓰는걸로 알고 있습니다. 10진수를 안쓰는 이유