2의 보수 변환기 (8–64비트)
변환
2의 보수는 거의 모든 컴퓨터가 부호 있는 정수를 저장하는 방식입니다: 최상위 비트가 부호이고, 음수는 크기의 비트를 반전한 뒤 1을 더해 만듭니다. 이 변환기는 임의의 정수를 — 십진, hex(0x), 이진(0b), 8진(0o), 양수 또는 음수로 입력 — 선택한 8·16·32·64비트 폭에 맞추고, 부호 비트를 강조한 결과 비트 패턴을 보여 줍니다. 그 하나의 패턴에서 부호 있는(2의 보수) 값과 부호 없는 값을 모두 읽어 내고, hex·8진·1의 보수도 함께 표시합니다. "0xFF는 부호 있는 바이트로 무슨 뜻인가?"(−1)나 "−128은 8비트에 어떻게 저장되나?"(0x80) 같은 질문에 빠르게 답하고, 값이 폭을 넘칠 때 어떻게 래핑되는지 볼 수 있습니다. 임의 정밀도 BigInt 연산으로 64비트 값도 정확합니다. 모든 처리는 로컬에서 실행되며 업로드되지 않습니다.
hex는 0x, 이진은 0b, 8진은 0o 접두사를 붙이고, 그 외는 십진입니다. 선행 −가 허용됩니다.
1101 0110
2의 보수: 최상위 비트가 부호입니다. 같은 패턴이 부호 있는 값과 부호 없는 값으로 읽힙니다.
사용법
- 값을 십진으로 입력하거나, hex·이진·8진은 0x / 0b / 0o 접두사를 붙여 입력.
- 비트 폭 선택(8·16·32·64).
- 부호 있는/없는 값, 비트 패턴, hex/8진, 1의 보수를 읽으세요. 값이 맞지 않아 래핑되면 안내가 표시됩니다.
자주 묻는 질문
- 음수는 어떻게 표현되나요?
- 2의 보수에서는 절댓값의 이진수를 취하고 모든 비트를 반전(1의 보수)한 뒤 1을 더합니다. 8비트 −5의 경우: 5는 00000101, 반전하면 11111010, 1을 더하면 11111011 = 0xFB입니다. 최상위 비트가 1이면 음수임을 나타냅니다. 이 도구는 어떤 폭에서든 자동으로 처리합니다.
- 왜 0xFF가 255와 −1 둘 다로 표시되나요?
- 같은 비트 패턴도 부호 없이 읽느냐 부호 있게 읽느냐에 따라 다른 수를 뜻합니다. 부호 없는 바이트로 11111111은 255이고, 부호 있는 2의 보수 바이트로는 −1입니다. 하드웨어와 언어는 타입마다 하나의 해석을 고르지만(예: uint8 vs int8) 이 도구는 둘 다 동시에 보여 줍니다.
- 수가 폭에 맞지 않으면 어떻게 되나요?
- 래핑됩니다. 폭 범위를 벗어난 값은 2^폭으로 나눈 나머지로 줄어듭니다 — 고정폭 정수 연산이 오버플로 시 하는 것과 같습니다. 예를 들어 8비트의 300은 300 − 256 = 44가 되고, 부호 있는 해석은 그 패턴을 따릅니다. 래핑이 일어나면 안내가 표시됩니다.
- 1의 보수와 2의 보수의 차이는?
- 1의 보수는 단순한 비트 NOT으로, 모든 0이 1이 되고 그 반대도 마찬가지입니다. 2의 보수는 1의 보수에 1을 더한 것으로, 0이 하나뿐이고 덧셈이 균일해 현대 CPU가 부호 있는 정수에 사용합니다. 도구는 참고로 1의 보수도 보여 줍니다.
관련 도구
BCD 변환기 (2진화 10진수)
10진수 ↔ 8421 2진화 10진수 변환 — 자릿수별 4비트 니블, 패킹 BCD 16진 바이트, BCD 유효성 검사.
그레이 코드 변환기
10진수·2진수·반사 2진 그레이 코드 간 양방향 변환, 선택적 고정 비트 폭과 0-7 참조표 제공.
IEEE 754 부동소수점 변환기 (32 & 64비트)
임의의 수를 float32·float64의 정확한 IEEE 754 비트 배치로 확인 — 부호·지수·가수 비트, hex, 저장된 값, 반올림 — 또는 hex 비트를 수로 디코딩, 브라우저에서.
로마 숫자 변환기
1부터 3999까지 아라비아 숫자와 로마 숫자를 양방향으로 변환합니다.
진법 변환기
2진수·8진수·10진수·16진수 사이로 숫자를 변환하세요.
단위 변환기
길이·무게·온도·면적·부피·속도·시간을 변환하세요.