작성
·
484
0
000.....0000
000.....0001
000.....0010
000.....0011
.
.
.
111.....1111(각 숫자의 자릿수 32)까지 2^32바이트라는 말씀이시잖아요,
그런데 각 숫자는(000...0000) 32bit로 표현할 수 있는 숫자니까 한 숫자당 4byte 아닌가요..?
그러니 총 2^32(숫자의 개수)*4byte가 한계 용량이라고 생각했는데 제 생각의 어느부분에 오류가 있나요?
답변 1
2
32비트 숫자 자체는 말 그대로 4바이트 입니다. 그러나 32비트 숫자가 부여되는 대상 메모리 최소 단위는 1바이트 입니다. 배보다 배꼽이 더 큰 모양으로 이해하면 되겠습니다. 2^32 4바이트가 아니라 2^32 1바이트 입니다.
같은 맥락에서 64비트 환경은 1바이트를 관리하기 위해 64비트 번호를 부여합니다. 부여된 숫자 자체는 관리 대상 메모리의 크기와 관련이 없습니다. 관리의 최소단위는 모두 1바이트입니다. 여기에 16비트 숫자를 부여하든 아니면 128비트 숫자를 부여하든 그것은 어디까지나 관리하는 관점에서의 이야기에 불과 합니다.
이해해 도움이 되기 바랍니다. 감사합니다. ^^