본문으로 건너뛰기
123도구

진법 변환기

2진수, 8진수, 10진수, 16진수를 서로 바꾸고 비트 단위로 보여줍니다. 큰 수와 음수(2의 보수)도 처리합니다.

  • 2 · 8 · 10 · 16진수 · 2의 보수
  • 파일·입력값이 서버로 전송되지 않음
  • 가입 없이 무료

0x, 0b, 0o 접두어와 공백·밑줄 구분은 자동으로 무시합니다. 음수는 앞에 - 를 붙입니다.

비트 수
11비트
바이트 수
2바이트

변환 결과

2진수0b
0111 1110 1010
8진수0o
3752
10진수
2,026
16진수0x
07 EA

고정 비트폭 (2의 보수)

폭16진수부호 없음부호 있음
8비트범위를 넘습니다
16비트07 EA20262026
32비트00 00 07 EA20262026
64비트00 00 00 00 00 00 07 EA20262026

16비트 비트열0000 0111 1110 1010

사용 방법

  1. 입력 진법을 고르고 값을 넣습니다. 0xFF처럼 접두어를 붙여도 됩니다.
  2. 오른쪽에 2·8·10·16진수 결과가 바로 나옵니다. 2진수는 4자리, 16진수는 1바이트(2자리)씩 띄워서 읽기 쉽게 보여줍니다.
  3. 음수나 프로그램 변수 값을 볼 때는 아래 ‘고정 비트폭’ 표에서 8·16·32·64비트 2의 보수 표현을 확인합니다.

계산 기준과 공식

n진수는 자리마다 n의 거듭제곱을 곱해 더한 값입니다. 예를 들어 16진수 7EA는 7×16² + 14×16 + 10 = 2026입니다. 16진수 한 자리는 정확히 2진수 네 자리와 대응하므로 비트를 다룰 때 16진수를 많이 씁니다.

컴퓨터는 음수를 2의 보수로 저장합니다. w비트에서 음수 −x는 2w − x로 표현합니다. 그래서 같은 비트열이라도 부호 있는 정수(int8)로 읽느냐, 부호 없는 정수(uint8)로 읽느냐에 따라 값이 달라집니다.

계산은 BigInt로 하므로 64비트를 넘는 큰 수도 정확합니다(1,024자리까지).

예시

  1. 2026을 여러 진법으로

    2진수 0111 1110 1010, 8진수 3752, 16진수 7EA입니다. 11비트에 들어가는 수입니다.

  2. -1과 200을 8비트로

    −1을 8비트로 저장하면 FF(1111 1111)이고, 부호 없이 읽으면 255입니다. 반대로 200은 8비트에서 C8인데, 이걸 int8로 읽으면 -56이 됩니다. 센서 값이 갑자기 음수로 보이는 흔한 원인입니다.

결과를 읽는 법

‘범위를 넘습니다’는 그 비트폭에 담을 수 없는 값이라는 뜻입니다. 8비트는 −128~255, 16비트는 −32,768~65,535까지 담을 수 있습니다(부호 있음·없음 범위를 합쳐서). ASCII 해석은 값을 바이트로 나눠 글자로 읽은 것으로, 16진수 덤프 속 문자열을 확인할 때 씁니다.

자주 묻는 질문

16진수 FF는 왜 255인가요?

F는 15입니다. FF = 15×16 + 15 = 255이고, 이는 8비트(1바이트)에 담을 수 있는 가장 큰 부호 없는 수입니다. 색상 코드 #FFFFFF의 각 FF가 빨강·초록·파랑 최대값 255입니다.

음수를 2진수로 바꾸면 왜 앞이 1로 가득한가요?

2의 보수 표현 때문입니다. 맨 앞 비트가 1이면 음수라는 뜻이고, -1은 모든 비트가 1입니다. 몇 비트로 저장하느냐에 따라 1의 개수가 달라지므로 고정 비트폭 표를 보세요.

소수(0.5 같은 실수)도 변환되나요?

정수만 지원합니다. 실수는 IEEE 754 부동소수점 형식으로 저장되어 진법 변환과는 다른 규칙이 필요합니다.

8진수는 어디에 쓰나요?

리눅스 파일 권한이 대표적입니다. chmod 755의 7(rwx), 5(r-x)가 각각 2진수 111, 101입니다.

결과가 이상하거나 있었으면 하는 기능이 있나요? 오류 제보 · 의견 보내기