IP 주소 2진수 변환 계산기란?
192.168.1.1 같은 IPv4 주소는 사실 하나의 32비트 숫자입니다. 사람이 읽기 쉽도록 점(.)으로 구분된 네 개의 10진수(옥텟)로 표기할 뿐이죠. 이 계산기는 네 개의 옥텟을 2진수 표현, 하나의 32비트 10진수 정수, 그리고 16진수로 변환해 줍니다. 이 세 가지 형태는 네트워크 엔지니어, 개발자, 그리고 학생들이 가장 자주 오가며 다루는 형식입니다.
사용 방법
네 개의 옥텟을 각각 입력하세요. 모두 0부터 255 사이의 정수여야 합니다. 계산 버튼을 누르면 점 구분 2진수(옥텟당 8비트), 끊김 없이 이어진 32비트 2진수 문자열, 그에 해당하는 10진수 정수, 그리고 점 구분 16진수까지 한 번에 확인할 수 있습니다.
변환 공식 풀이
각 옥텟은 2진수로 바꾼 뒤 앞쪽을 0으로 채워 정확히 8비트로 맞춥니다. 그래서 1은 00000001이 되고 255는 11111111이 됩니다. 네 개를 모두 이어 붙이면 32비트 값이 완성되죠. 10진수 정수는 각 옥텟에 자리값에 맞는 가중치를 곱해 구합니다. $$\text{Decimal} = \text{Octet 1} \cdot 2^{24} + \text{Octet 2} \cdot 2^{16} + \text{Octet 3} \cdot 2^{8} + \text{Octet 4}$$ 와 같습니다. 각 옥텟이 8비트이므로 왼쪽으로 24비트, 16비트, 8비트씩 이동(시프트)시키면 32비트 단어 안에서 올바른 위치에 자리잡게 됩니다.
예제로 따라 하기
192.168.1.1을 예로 들어보겠습니다. 2진수로는 \(192 = 11000000\), \(168 = 10101000\), \(1 = 00000001\), \(1 = 00000001\) 이므로 11000000.10101000.00000001.00000001이 됩니다. 10진수 정수는 $$192 \times 16{,}777{,}216 + 168 \times 65{,}536 + 1 \times 256 + 1 = 3{,}221{,}225{,}472 + 11{,}010{,}048 + 256 + 1 = 3{,}232{,}235{,}777$$ 입니다. 16진수로는 C0.A8.01.01 입니다.
자주 묻는 질문
왜 각 옥텟은 0~255 사이여야 하나요? 각 옥텟은 8비트이고, 8비트로 표현할 수 있는 값의 범위가 0부터 255까지이기 때문입니다(\(2^{8} = 256\)가지 값).
10진수 정수는 어디에 쓰이나요? 데이터베이스, 위치 정보(지오로케이션) 테이블, 라우팅 코드는 종종 IP를 하나의 정수로 저장합니다. 점으로 구분된 문자열을 파싱하는 것보다 정수 비교나 범위 검사가 훨씬 빠르기 때문이죠.
IPv6에도 사용할 수 있나요? 아니요. IPv6 주소는 128비트이며 16진수 그룹으로 표기합니다. 이 도구는 IPv4(32비트) 주소만 처리합니다.