사용 방법
- 입력 진법을 고르고 값을 넣습니다. 0xFF처럼 접두어를 붙여도 됩니다.
- 오른쪽에 2·8·10·16진수 결과가 바로 나옵니다. 2진수는 4자리, 16진수는 1바이트(2자리)씩 띄워서 읽기 쉽게 보여줍니다.
- 음수나 프로그램 변수 값을 볼 때는 아래 ‘고정 비트폭’ 표에서 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자리까지).
예시
2026을 여러 진법으로
2진수
0111 1110 1010, 8진수3752, 16진수7EA입니다. 11비트에 들어가는 수입니다.-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입니다.
결과가 이상하거나 있었으면 하는 기능이 있나요? 오류 제보 · 의견 보내기