메모리 내부 저장 변수나 상수 값을 확인하다보면 16진수 주소를 많이 볼 수 있다.
이번 포스팅에서는 메모리 계산하는 방법에 대해 정리하고자 한다.
1. 먼저 알아야할 것은 16진수 한 자리의 수는 2의 4제곱을 나타낸다.
한자리가 늘때마다 곱하기 16(2의 4제곱)씩 더해진다.
0x1 : 1byte , 0x10 : 16bytes , 0x100 : 256bytes , 0x1000 : 4096bytes(4k)
0x10000 : 64kb, 0x100000 : 1MB , 0x1000000 : 16MB , 0x10000000 : 64MB , 0x100000000 : 256MB
1 -> 16 -> 256 -> 4096(4로 축약) -> 64 -> 1 -> 16 -> 256 -> 4096(4로 축약) 반복
2. KB, MB, GB, TB
1KB : 2의 10제곱
1MB : 2의 20제곱
1GB : 2의 30제곱
1TB : 2의 40제곱
2의 4제곱과 나누어 떨어진다면 0의 개수를 계산할 수 있다.
- 1KB(2의 10제곱)은 2의 4제곱 나누어 떨어지지 않는다
- 1MB(2의 20제곱)은 2의 4제곱 나누어 떨어진다(나눗셈 값 : 5 , 0의 갯수가 5개) -> 0x100000
- 1GB(2의 30제곱)은 2의 4제곱 나누어 떨어지지 않는다.
- 1TB(2의 40제곱)은 2의 4제곱 나누어 떨어진다 (나눗셈 값 : 10 , 0의 갯수가 10개) -> 0x10000000000