RakunBear
2025. 4. 29. 11:47
2025. 4. 29. 11:47
핵심 원리
- 어떤 수
N
의 자리 수는 "그 수의 로그를 취한 값" 임을 이용
- 10 진수는 $log_{10}(N)$
- 따라서, $log_{10}(2) \approx 0.301$
- 즉, $1 / 0.301 \approx 3.3$ 이 되므로 10진수 자리수 ≈ floor(비트 수 × 0.301) + 1
결론
- 2진수의 비트 수 / 3.3
- 10진수 자리수 ≈ floor(비트 수 × 0.301) + 1
실제 대응표
비트 수 |
계산 (n × 0.301) |
floor 후 +1 |
실제 최대값 (2ⁿ⁻¹) |
십진수 자리수 |
8비트 |
8 × 0.301 ≈ 2.408 |
floor(2.408) +1 = 3 |
255 |
3자리 |
16비트 |
16 × 0.301 ≈ 4.816 |
floor(4.816) +1 = 5 |
65,535 |
5자리 |
24비트 |
24 × 0.301 ≈ 7.224 |
floor(7.224) +1 = 8 |
16,777,215 |
8자리 |
31비트 |
31 × 0.301 ≈ 9.331 |
floor(9.331) +1 = 10 |
2,147,483,647 |
10자리 |
64비트 |
64 × 0.301 ≈ 19.264 |
floor(19.264) +1 = 20 |
18,446,744,073,709,551,615 |
20자리 |