진법 변환기
2·8·10·16진수와 2~36진법을 한 번에 변환합니다. 소수·순환소수, 2의 보수, IEEE 754, 풀이 과정까지
풀이 과정
정보처리기사·컴활 시험처럼 손으로 푸는 과정을 그대로 보여줍니다
정수 부분: 몫이 0이 될 때까지 나누기
| 173 ÷ 2 | = 86 | 나머지 | 1 |
| 86 ÷ 2 | = 43 | 나머지 | 0 |
| 43 ÷ 2 | = 21 | 나머지 | 1 |
| 21 ÷ 2 | = 10 | 나머지 | 1 |
| 10 ÷ 2 | = 5 | 나머지 | 0 |
| 5 ÷ 2 | = 2 | 나머지 | 1 |
| 2 ÷ 2 | = 1 | 나머지 | 0 |
| 1 ÷ 2 | = 0 | 나머지 | 1 |
나머지를 아래에서 위로 읽으면 → 10101101
부호 있는 정수 · 비트
8비트 — 부호 있는 범위 -128 ~ 127, 부호 없는 범위 0 ~ 255
비트 보기
비트를 누르면 0↔1이 바뀌고 값이 바로 갱신됩니다. 숫자는 비트 번호(0 = LSB)입니다.
맨 왼쪽 비트(MSB)가 부호 비트입니다. 음수이면 2의 보수, 양수이면 부호 없는 값으로 다시 계산합니다.
같은 비트 패턴의 4가지 해석
- 부호 없음
- 173
- 2의 보수
- -83
- 1의 보수
- -82
- 부호-크기
- -45
IEEE 754 부동소수점
실수가 float/double로 어떻게 저장되는지 부호·지수·가수로 나눠 봅니다
- 종류
- 정규수 (normal)
- 16진 비트 패턴
- 0x3DCCCCCD
- 지수
- 123 − 127 (바이어스) = -4
- 값 = (−1)^부호 × 가수 × 2^지수
- (−1)0 × 1.100110011001100110011012 × 2-4
- 실제로 저장되는 값 (정확한 10진)
- 0.100000001490116119384765625
입력한 값과 정확히 같지 않습니다 — 2진 소수로 딱 떨어지지 않아 가장 가까운 값으로 반올림되었습니다. 0.1 + 0.2 ≠ 0.3인 이유입니다.
텍스트 ↔ 2진·16진 (UTF-8)
48 65 6C 6C 6F 20 ED 95 9C EA B8 8001001000 01100101 01101100 01101100 01101111 00100000 11101101 10010101 10011100 11101010 10111000 1000000072 101 108 108 111 32 237 149 156 234 184 128영문·숫자는 1바이트(ASCII와 같음), 한글은 3바이트입니다. 공백·쉼표·0x 구분 모두 허용합니다.
자주 쓰는 값
| 10진수 (Decimal) | 2진수 (Binary) | 8진수 (Octal) | 16진수 (Hex) |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 7 | 111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 10 | 1010 | 12 | A |
| 15 | 1111 | 17 | F |
| 16 | 10000 | 20 | 10 |
| 127 | 1111111 | 177 | 7F |
| 128 | 10000000 | 200 | 80 |
| 255 | 11111111 | 377 | FF |
| 256 | 100000000 | 400 | 100 |
| 1024 | 10000000000 | 2000 | 400 |
| 4096 | 1000000000000 | 10000 | 1000 |
| 65535 | 1111111111111111 | 177777 | FFFF |
진법 변환기란?
2진수(Binary), 8진수(Octal), 10진수(Decimal), 16진수(Hexadecimal)와 2~36진법 사이를 실시간으로 변환하는 도구입니다. 임의 크기의 정수와 소수(순환소수 포함)를 정확히 변환하고, 2의 보수·1의 보수·부호-크기, IEEE 754 부동소수점 구조, 손으로 푸는 풀이 과정, 텍스트의 UTF-8 바이트 변환까지 한 화면에서 제공합니다.
사용 방법
- 1아무 진법 칸에 값을 입력하면 나머지가 즉시 바뀝니다. 음수(-42), 소수(13.625), 접두사(0xFF, 0b1010), 구분자(1010_1101)도 입력할 수 있습니다
- 2'풀이 과정'에서 나눗셈법·자리값 합·묶음법을 단계별로 확인할 수 있습니다 (정보처리기사·컴활 대비)
- 3'부호 있는 정수'에서 8/16/32/64비트를 고르면 2의 보수·1의 보수·부호-크기와 오버플로 여부를 보여주고, 비트를 눌러 값을 바꿀 수 있습니다
- 4IEEE 754 칸에 실수를 넣으면 float32/float64의 부호·지수·가수와 실제 저장값을 보여줍니다
- 5주소창 링크에 입력값이 저장되므로 그대로 공유하면 같은 화면이 열립니다
변환 원리
- 110진 → N진: 정수부는 N으로 계속 나눠 나머지를 아래에서 위로, 소수부는 N을 계속 곱해 정수부를 위에서 아래로 읽습니다.
- 2N진 → 10진: 각 자리 숫자 × N^자리위치를 모두 더합니다. 소수점 아래 첫 자리는 N^-1입니다.
- 32진 ↔ 16진은 4비트, 2진 ↔ 8진은 3비트씩 묶으면 바로 변환됩니다.
- 4음수 2의 보수 = 모든 비트 반전(1의 보수) + 1. n비트 범위는 −2^(n−1) ~ 2^(n−1)−1입니다.
- 5IEEE 754 float32는 부호 1 + 지수 8(바이어스 127) + 가수 23비트, float64는 1 + 11(바이어스 1023) + 52비트입니다.
참고 사항
- •2진수: 컴퓨터가 실제로 처리하는 0과 1의 숫자 체계. 16진 한 자리 = 4비트
- •8진수: Unix 파일 권한(chmod 755 = rwxr-xr-x) 등에 사용
- •16진수: 색상코드(#FF0000), 메모리 주소, 바이트 덤프 등에 사용
- •10진 소수 0.1은 2진수로 0.0(0011)처럼 끝없이 반복됩니다 — 부동소수점 오차의 원인
- •8비트 2의 보수 범위는 −128 ~ 127이며, −128은 1의 보수·부호-크기로는 표현할 수 없습니다
자주 묻는 질문
Q. 16진수는 왜 컴퓨터에서 많이 사용되나요?
A. 16진수 한 자리는 2진수 4비트와 정확히 대응해 메모리 주소, 색상 코드, 해시값 등을 짧게 나타낼 수 있습니다. 0~9와 A~F(10~15)를 사용합니다.
Q. 음수나 소수점 변환도 지원하나요?
A. 네. -42처럼 부호를 붙이면 음수로 변환되고, '부호 있는 정수'에서 8~64비트 2의 보수·1의 보수·부호-크기 표현을 볼 수 있습니다. 13.625 같은 소수도 변환되며, 0.1처럼 2진수로 끝나지 않는 값은 0.0(0011)처럼 순환마디를 괄호로 표시합니다.
Q. 2의 보수는 어떻게 구하나요?
A. 양수의 2진수를 모든 비트 반전(1의 보수)한 뒤 1을 더합니다. 예: 8비트에서 5 = 00000101 → 반전 11111010 → +1 = 11111011 = −5. 풀이 과정과 비트 보기에서 직접 확인할 수 있습니다.
Q. 0.1 + 0.2가 0.3이 아닌 이유는?
A. 0.1은 2진수로 끝없이 반복되는 소수라서 float64에 저장할 때 가장 가까운 값(0.1000000000000000055…)으로 반올림됩니다. IEEE 754 칸에 0.1을 넣으면 실제 저장값을 볼 수 있습니다.
Q. IP 주소를 2진수로 변환할 수 있나요?
A. 각 옥텟(0~255)을 10진수 칸에 입력하면 8비트 2진수로 변환됩니다. 예: 192 → 11000000, 168 → 10101000.
진법 변환기란?
진법 변환기는 2진수(Binary), 8진수(Octal), 10진수(Decimal), 16진수(Hexadecimal)를 실시간으로 상호 변환하는 무료 온라인 개발 도구입니다. 컴퓨터 과학, 프로그래밍, 네트워크 관리, 디지털 회로 설계 등 다양한 분야에서 진법 변환이 필요하며, 이 도구는 소수·순환소수, 2의 보수, IEEE 754 부동소수점 분해, 손으로 푸는 풀이 과정까지 제공하여 정보처리기사·컴활을 준비하는 학생과 개발자 모두에게 유용합니다. 색상 코드(HEX), 메모리 주소, chmod 권한 설정 등 실무 활용도가 높습니다.
진법 변환기 활용 팁
- 색상 코드 변환: 웹 색상 #FF5733은 16진수 두 자리씩(FF·57·33) 10진수로 변환하면 RGB(255, 87, 51) 값과 일치합니다.
- chmod 권한 계산: Unix/Linux 파일 권한 755는 8진수이며, 이를 2진수로 변환하면 rwxr-xr-x(111 101 101) 구조를 바로 이해할 수 있습니다.
- 메모리 주소 분석: 16진수 메모리 주소(예: 0x1A2B)를 10진수로 변환하면 실제 메모리 위치 계산에 도움이 됩니다.
- 비트 구조 학습: 비트 보기에서 비트를 눌러 0↔1을 바꾸면 값과 2의 보수·1의 보수 해석이 바로 바뀌어 비트 구조를 직관적으로 이해할 수 있습니다.
- IP 주소 분석: IPv4 주소의 서브넷 마스크를 2진수로 변환하면 네트워크 범위와 호스트 수를 쉽게 계산할 수 있습니다.