진법 변환기 (2진수 ↔ 8진수 ↔ 10진수 ↔ 16진수 & 비트 연산)

HOT

Binary, Octal, Decimal, Hex 실시간 상호 변환 및 비트별 인터랙티브 토글 그리드와 2의 보수 연산

ADVERTISEMENT · TOP BANNER

Responsive 728x90 / 320x100 Ad Slot

(CLS Prevention Active · Zero Shift)
100% 브라우저 연산 (서버 전송 없음, 개인정보 안전)
Interactive Client Mode
비트 대역폭:
10진수 (Decimal)0 ~ 9
DEC

인간이 일상에서 사용하는 표준 수 체계

16진수 (Hexadecimal)0 ~ F
HEX (0x)

메모리 주소, 컬러 코드, 바이트 덤프

2진수 (Binary)0 / 1
BIN (0b)

컴퓨터 하드웨어 및 CPU 레지스터

8진수 (Octal)0 ~ 7
OCT (0o)

유닉스/리눅스 파일 권한 마스크 (chmod)

8비트 개별 비트 토글 (클릭하여 0/1 반전)

비트 반전(~NOT): 0x0

주요 핵심 진법 환산표 (Quick Reference)

개발자 필수 정수 상한선
용도 및 설명DEC (10)HEX (16)BIN (2)OCT (8)적용
Null / Zero00x00000000000
4비트 꽉 참 (Nibble)150x0F0000111117
Signed 8-bit 최대값 (ASCII)1270x7F01111111177
Unsigned 8-bit 최대값 / RGB 2552550xFF11111111377
리눅스 rwxr-xr-x 권한4930x1ED00000001 11101101755
16비트 최대값 (Port max)655350xFFFF11111111 11111111177777
ADVERTISEMENT · HIGH CTR IN-FEED

Native In-Feed / High Viewability Ad Slot

(CLS Prevention Active · Zero Shift)

컴퓨터 진법 체계의 본질과 2진수·8진수·10진수·16진수 및 비트 연산 완벽 해설

현대 소프트웨어 공학, 임베디드 하드웨어 개발, 시스템 프로그래밍, 그리고 정보보안 분야에서 가장 기본적이면서도 핵심적인 수학적 기초는 바로 '진법 변환(Radix Conversion)'입니다. 인간은 신체적 특성(양손의 열 손가락)으로 인해 자연스럽게 10진법(Decimal)을 일상 언어로 정착시켰지만, 반도체 트랜지스터의 물리적 특성(전압이 높음/켜짐 1, 전압이 낮음/꺼짐 0)을 기반으로 작동하는 디지털 컴퓨터는 오직 0과 1로만 구성된 '2진법(Binary)'으로만 생각하고 데이터를 처리합니다.

그러나 2진수는 자릿수가 지나치게 길어져 인간 프로그래머가 메모리 주소나 데이터를 직관적으로 판독하기 어렵습니다. 예를 들어 10진수 65,535를 2진수로 적으면 '1111111111111111'이라는 16자리의 난독성 문자열이 됩니다. 이러한 가독성 한계를 해결하기 위해 컴퓨터 과학에서는 2의 거듭제곱인 '8진법(Octal, 2³)'과 '16진법(Hexadecimal, 2⁴)'을 압축 표현 수단으로 도입했습니다. 특히 16진수는 4자리 2진수(Nibble)를 0부터 F까지의 단 1자리 기호로 완벽하게 1:1 치환할 수 있어 컴퓨터 메모리 덤프(0xDEADBEEF), RGB 컬러 코드(#FF5722), 네트워크 MAC 주소의 표준 표기법으로 확립되었습니다.

또한 컴퓨터 하드웨어 내부에서 음수를 표현하고 덧셈 회로만으로 뺄셈을 구현하는 '2의 보수(Two's Complement)' 체계와 비트 단위 마스킹 연산(AND, OR, XOR, NOT)은 시스템 성능 최적화의 핵심입니다. 오르보킷 진법 변환기는 2·8·10·16진수의 실시간 양방향 변환뿐만 아니라, 비트 단위 시각화 그리드, 2의 보수 부호 있는 정수 연산, 그리고 엔지니어링 비트마스크를 직관적으로 분석할 수 있는 통합 개발 환경을 제공합니다.

진법 변환 수학 공식 및 2의 보수(Two's Complement) 계산 원리

가중치 전개식(Position Weight Expansion), 연속 나눗셈법, 그리고 비트 반전 후 +1 덧셈 공식입니다.

진법 상호 변환 및 2의 보수 음수 공식Mathematical Formulation
N진수 → 10진수: Σ (자릿수 값 × N^위치) | 10진수 → N진수: 몫이 0이 될 때까지 N으로 나눈 나머지들을 역순 배열 | 2의 보수 (음수 표현) = ~X (모든 비트 반전 NOT) + 1

16진수 1자리는 정확히 2진수 4비트(2⁴ = 16)와 일치하며, 8진수 1자리는 2진수 3비트(2³ = 8)와 일치합니다.

10진수 42를 2진수, 8진수, 16진수로 변환하고 8비트 환경에서 -42의 2의 보수를 구하는 과정
42를 2진수로 변환 (2로 연속 나눗셈)42 = 2×21+0, 21 = 2×10+1, 10 = 2×5+0, 5 = 2×2+1, 2 = 2×1+0, 1 = 2×0+1 (나머지 역순)0b00101010 (8비트 2진수)
2진수를 3비트씩 묶어 8진수로 변환00 / 101 / 010 → 0 / 5 / 20o52 (8진수 52)
2진수를 4비트씩 묶어 16진수로 변환0010 (2) / 1010 (10 = A)0x2A (16진수 2A)
8비트 환경에서 -42의 2의 보수 연산비트 반전 (~00101010) = 11010101 → 여기에 1을 더함 (11010101 + 1)11010110 (16진수로 0xD6, 부호 있는 정수 -42)

👉 10진수 42는 16진수로 0x2A이며, 음수 -42는 2의 보수 체계에서 11010110 (0xD6)으로 완벽하게 표현됩니다.

  • 16진수 영문자 대응: 0~9 이후 10은 A, 11은 B, 12는 C, 13은 D, 14는 E, 15는 F로 1자리 문자화합니다.
  • 리눅스 파일 권한(chmod): 읽기(4, 2²), 쓰기(2, 2¹), 실행(1, 2⁰) 권한 3비트를 묶어 8진수 0~7로 표현합니다.
  • 최상위 비트(MSB, Most Significant Bit): 부호 있는 정수에서 맨 왼쪽 첫 비트가 0이면 양수, 1이면 음수를 나타냅니다.
  • 오버플로우(Integer Overflow): 8비트 Unsigned 정수의 최댓값인 255(0xFF)에 1을 더하면 비트 캐리가 발생하여 0이 됩니다.

0부터 15까지 4비트 니블(Nibble) 진법 완벽 대조표

디지털 회로 및 시스템 프로그래밍의 기초가 되는 0~15 정수의 진법별 표현 및 비트 패턴입니다.

10진수 (Dec)2진수 (Bin, 4-bit)8진수 (Oct)16진수 (Hex)비트 반전 (~NOT)부호 있는 4비트 값
0000000x011110
1000110x11110+1
2001020x21101+2
3001130x31100+3
4010040x41011+4
5010150x51010+5
6011060x61001+6
7011170x71000+7 (4비트 최대 양수)
81000100x80111-8 (4비트 음수 시작)
91001110x90110-7
101010120xA0101-6
111011130xB0100-5
121100140xC0011-4
131101150xD0010-3
141110160xE0001-2
151111170xF0000-1

* ※ 16진수 0x0부터 0xF까지의 16개 기호는 정확히 4개의 2진수 비트를 1:1로 대표합니다.

ADVERTISEMENT · IN-ARTICLE CONTENT

High-Engagement In-Article Native Ad Slot

(CLS Prevention Active · Zero Shift)

사용 방법

11. 원하는 진법 필드에 숫자 입력

2진수(0b), 8진수(0o), 10진수, 16진수(0x) 중 어느 칸에든 값을 입력하면 모든 진법 필드가 실시간으로 즉시 동기화됩니다.

22. 비트 길이(8·16·32·64비트) 및 부호(Signed/Unsigned) 선택

작업 환경에 맞춰 정수 데이터 크기(8-bit Byte ~ 64-bit Long)와 부호 비트 처리 방식을 지정합니다.

33. 인터랙티브 비트(Bitwise) 토글 그리드 조작

화면에 시각화된 0과 1의 비트 스위치를 마우스로 직접 클릭하여 켜고 끄면서 실시간으로 변하는 10진수 및 16진수 값을 관찰합니다.

44. 비트 논리 연산(AND, OR, XOR, NOT) 및 2의 보수 확인

비트 반전값과 음수 표현 2의 보수 결과를 확인하고, 프로그래밍 코드(C/C++, Java, Python)에 사용할 접두어(0x, 0b) 서식을 복사합니다.

소프트웨어 엔지니어링 및 시스템 개발 실전 활용 시나리오

리눅스 서버 권한 설정, 웹 컬러 조작, 마이크로컨트롤러 레지스터 제어 사례입니다.

리눅스 파일 권한 chmod 755 비트 분석

소유자 rwx(7 = 4+2+1 = 111), 그룹 r-x(5 = 4+1 = 101), 기타 r-x(5 = 4+1 = 101)를 2진수 111101101로 분해하여 보안 취약점 점검.

웹 프론트엔드 RGBA 컬러 16진수 코드 변환

CSS 컬러 rgb(255, 87, 34)를 각 채널별 16진수 FF, 57, 22로 변환하여 테마 컬러 #FF5722로 손쉽게 지정.

임베디드 아두이노/STM32 GPIO 핀 제어

제어 레지스터의 3번 핀만 켜기 위해 비트마스크 (1 << 3) = 0b00001000 = 0x08을 OR 연산(PORTB |= 0x08)하여 다른 핀 상태 보존.

네트워크 서브넷 마스크(Subnet Mask) CIDR 계산

서브넷 255.255.255.0을 2진수로 전개하여 연속된 1의 개수 24개(/24)를 도출하고 호스트 가능 IP 개수(254개) 산출.

💡 진법 변환 및 비트 연산 전문가 팁 & 디버깅 노하우

✓ 2진수 4자리(Nibble)를 16진수 1자리로 끊어 읽는 습관

11010110을 볼 때 '1101'(D)과 '0110'(6)으로 4자리씩 분리하면 암산으로도 즉시 0xD6임을 파악할 수 있습니다.

✓ 짝수/홀수 판별은 10진수 나눗셈 대신 맨 끝 비트 AND 연산

컴퓨터에서 (x & 1) 연산은 x % 2 == 1보다 CPU 클럭 사이클을 적게 소모하여 초고속 연산 처리가 가능합니다.

✓ 거듭제곱 2배 곱셈과 나눗셈은 비트 시프트(<<, >>) 활용

(x << 1)은 x × 2와 같고, (x >> 1)은 x ÷ 2와 완벽히 같습니다. 임베디드 성능 튜닝에 필수적입니다.

✓ 임베디드 레지스터 초기화 시 0xAA와 0x55 패턴 테스트

0xAA는 10101010, 0x55는 01010101로 인접 핀 간 쇼트(Short)나 냉납을 검출하는 하드웨어 번인(Burn-in) 표준 테스트 패턴입니다.

⚠️ 흔히 하는 실수 & 예방법

❌ 프로그래밍 언어에서 8진수 선행 0(Zero) 접두어 실수
✅ 자바스크립트나 C언어에서 012는 10진수 12가 아니라 8진수 12(10진수로 10)로 파싱되므로 주의해야 합니다.
❌ 부호 있는 8비트 정수에서 127을 넘어설 때의 오버플로우
✅ Signed char에서 127(0x7F)에 1을 더하면 음수 최솟값인 -128(0x80)이 되어 무한루프나 치명적 버그를 유발합니다.
❌ 16진수 문자열 파싱 시 대소문자 혼용 및 0x 누락
✅ parseInt('FF', 16)과 parseInt('0xFF', 16)은 언어 엔진에 따라 다르게 처리될 수 있으므로 접두어 유무를 명확히 해야 합니다.
❌ 비트 NOT(~) 연산 시 비트 너비를 고려하지 않는 실수
✅ 자바스크립트의 ~ 연산자는 32비트 정수로 강제 변환되므로 8비트 값의 NOT을 취할 때는 반드시 `~x & 0xFF`로 마스킹해야 합니다.

자주 묻는 질문 (FAQ)

사용자 및 전문가들이 가장 자주 묻는 핵심 질문과 명확한 해답입니다.

6 Q&As

반도체 전자 회로의 물리적 안정성 때문입니다. 전압을 0V부터 9V까지 10단계로 미세하게 구별하려면 전압 노이즈와 발열로 인해 오류가 발생하기 쉽지만, '전압이 없음(0)'과 '전압이 있음(1)'의 2단계로만 구분하면 신호 왜곡 없이 극도로 빠르고 신뢰성 높은 연산이 가능합니다.

ADVERTISEMENT · FOOTER BANNER

Wide Responsive Banner

(CLS Prevention Active · Zero Shift)