AZ Tools

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의 보수)-42
부호 없음214
Hex0xd6
8진0o326
1의 보수0x29

2의 보수: 최상위 비트가 부호입니다. 같은 패턴이 부호 있는 값과 부호 없는 값으로 읽힙니다.

사용법

  1. 값을 십진으로 입력하거나, hex·이진·8진은 0x / 0b / 0o 접두사를 붙여 입력.
  2. 비트 폭 선택(8·16·32·64).
  3. 부호 있는/없는 값, 비트 패턴, 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의 보수도 보여 줍니다.

관련 도구