본문 바로가기

Programming/General

메모리 번지로 사이즈 계산하기

참 쉬운건데 헷갈리고 있었네요.

뒷번지 - 앞번지 + 1 이 해당 메모리 사이즈의 byte 값입니다.


예1 )

0x0000 -- 0x1FFF 는

0x1FFF - 0x0000 + 1  = 0x2000 (=8192)

8192 byte 이고 8 kbyte 입니다.

---------------------------------------------------

예2 )

0x04FFFFFF

0x04FFFFFF + 1 = 0x5000000 (byte)

0x5000000 / 0x400(1024) = 0x14000 = 81920 (kbyte)

81920 / 1024 = 80 Mbyte


공식으로 만들면 아래와 같습니다.

(선형주소 + 1) / (1024*1024) = x MB



참고로

64MB : 0x 0400 0000
1G : 0x 4000 0000
2G : 0x 8000 0000
3G : 0x C000 0000
4G : 0x 10000 0000

이렇게 되겠지요