인코딩 · 2026년 7월 3일 · 읽는 시간 4분
진법 변환, 계산기로 하다가 자꾸 실수해서 따로 만들었음
16진수 FF가 10진수로 몇인지, 2진수로는 어떻게 되는지 실시간으로 확인하면서 작업하고 싶었다.
진법 변환이 필요한 상황
주로 개발할 때 자주 마주친다:
- 색상 코드 → #FF5733 같은 16진수 → RGB 10진수로
- IP 주소 계산 → 서브넷 마스크 비트 계산
- 권한 설정 → chmod 755 → 2진수 비트 플래그 확인
- 메모리 주소 → 0x 시작하는 16진수 → 10진수 주소로
- 레지스터 값 분석 → 비트 단위 플래그 확인
- 프로토콜 분석 → 헤더 값 변환
윈도우 계산기 프로그래머 모드로도 되긴 하는데, 4가지 진수를 한눈에 비교하기가 불편하다.
진법이 왜 여러 개 쓰이나
각 진법마다 용도가 다르다:
- 2진수(Binary) → 컴퓨터 내부 동작, 비트 플래그, 비트 연산
- 8진수(Octal) → Unix 파일 권한 (755, 644 등), 일부 레거시 시스템
- 10진수(Decimal) → 사람이 읽는 일반 숫자
- 16진수(Hexadecimal) → 색상 코드, 메모리 주소, 바이트 표현
왜 16진수가 많이 쓰이냐면:
- 1바이트(8비트) = 16진수 2자리로 정확히 표현 가능
- 2진수보다 훨씬 짧아서 읽기 편함
- FF = 11111111(2진수) = 255(10진수) → 딱 맞아떨어짐
그래서 만들었음
숫자 하나 입력하면 모든 진수를 동시에 보여준다:
- 2진수, 8진수, 10진수, 16진수 동시 표시
- 어떤 진수로 입력해도 나머지로 자동 변환
- 각 결과 옆 복사 버튼
- 16진수 입력 시 0x 접두사 자동 처리
- 음수 처리 (2의 보수)
- 큰 수도 지원
추가 기능:
- 2진수 비트 표시 → 8비트/16비트/32비트 단위로 그룹화
- 색상 미리보기 → 16진수 색상 코드 입력 시 색상 표시
- ASCII 문자 표시 → 해당 숫자의 ASCII 문자 확인
비트 연산 활용
2진수 보면서 비트 연산 결과 확인할 때 유용하다:
- AND (&) → 두 수의 공통 비트만 1
- OR (|) → 둘 중 하나라도 1이면 1
- XOR (^) → 두 비트가 다를 때 1
- NOT (~) → 모든 비트 반전
- 시프트 (<<, >>) → 비트 이동 = 2의 거듭제곱 곱/나눔
chmod 755를 예로 들면:
755 = 7|5|5 = 111|101|101 (2진수) = 소유자 읽기/쓰기/실행, 그룹/기타 읽기/실행
실제로 써보니
좋은 점:
- 4가지 진수 동시 표시 → 비교하기 편함
- 어느 진수로 입력해도 동작 → 16진수 바로 입력 가능
- 비트 단위 시각화 → 8비트씩 묶어서 표시
한계:
- 부동소수점(float) 변환은 없음 → 정수만 지원
- 임의 진수(예: 3진수, 7진수)는 지원 안 함
사용법
- 숫자 입력 (10진수/16진수/2진수 아무거나)
- 나머지 진수로 자동 변환 확인
- 필요한 진수 복사
- 끝
즉시 변환된다.
써보기
회원가입 없이 바로 쓸 수 있다.
#진법변환 #2진수변환 #16진수변환 #8진수변환 #진수변환기 #개발도구 #인코딩도구