KO
내 도구

2의 보수 계산기(부호 있는/없는 정수 변환)

정수를 8, 16, 32, 64비트 또는 원하는 너비의 2의 보수 2진수·16진수로 변환하고, 부호 있는 값과 없는 값, 오버플로, 범위를 확인합니다.

비트 너비가 사용자 지정일 때 쓰입니다.
2진수(2의 보수)
1101 0110
16진수
0xD6
8진수
0o326
부호 있는 값
-42
부호 없는 값
214
8비트에 들어맞는지
Yes
1의 보수 표현
1101 0101
부호 있는 값 기준
부호-크기 표현
1010 1010
부호 있는 값 기준
비트 NOT(~x)
0x29 = 41
부호 반전(−x)
0x2A = 42
너비별 범위
너비대표적인 타입부호 있는 최솟값부호 있는 최댓값부호 없는 최댓값
8비트int8_t / uint8_t · sbyte / byte-128127255
16비트int16_t / uint16_t · short / ushort-327683276765535
32비트int32_t / uint32_t · int / uint-214748364821474836474294967295
64비트int64_t / uint64_t · long / ulong-9223372036854775808922337203685477580718446744073709551615
128비트Int128 / UInt128 (.NET 7+), __int128-170141183460469231731687303715884105728170141183460469231731687303715884105727340282366920938463463374607431768211455
다른 너비에서의 같은 값
너비들어맞나요?2의 보수(16진수)
8비트예0xD6
16비트예0xFFD6
32비트예0xFFFFFFD6
64비트예0xFFFFFFFFFFFFFFD6
내 도구 →
광고

컴퓨터는 음의 정수를 2의 보수로 저장합니다. 같은 비트라도 부호 있는 바이트에서는 −1, 부호 없는 바이트에서는 255를 뜻할 수 있습니다. 이 변환기는 8, 16, 32, 64, 128비트나 원하는 너비에서 비트 패턴의 두 가지 해석을 모두 보여 주고, 2진수·16진수·8진수 표현, 값이 들어맞는지 순환하는지, 비교용으로 예전의 1의 보수와 부호-크기 표현도 함께 보여 줍니다. 모든 계산은 정확한 큰 정수로 하므로 64·128비트 값도 반올림되지 않습니다.

사용 방법

  1. -42 같은 10진수나 16진수·2진수·8진수 비트 패턴을 입력합니다.
  2. 그 숫자가 어떤 방식으로 쓰였는지 고릅니다.
  3. 비트 너비를 고릅니다. 바이트는 8, int는 32, long은 64이며 사용자 지정도 가능합니다.
  4. 부호 있는 값과 없는 값, 비트 패턴, 오버플로 검사를 확인합니다.

계산식

패턴 = x mod 2ⁿ · 부호 있는 값 = 패턴 ≥ 2ⁿ⁻¹이면 패턴 − 2ⁿ, 아니면 패턴

n은 비트 너비입니다. 음수 x는 2ⁿ − |x|가 되며, 이는 |x|의 비트를 뒤집고 1을 더한 것과 같습니다. n비트 부호 있는 값은 −2ⁿ⁻¹부터 2ⁿ⁻¹ − 1까지, 부호 없는 값은 0부터 2ⁿ − 1까지입니다. 두 범위를 모두 벗어난 10진수는 하위 n비트만 남는데, C나 Java의 형 변환과 같은 순환입니다.

예시

8비트의 −42: 256 − 42 = 214이므로 패턴은 1101 0110 = 0xD6이며, 부호 없는 바이트는 이것을 214로 읽습니다. 1의 보수는 1101 0101, 부호-크기는 1010 1010입니다. 16비트에서는 같은 값이 0xFFD6, 32비트에서는 0xFFFFFFD6입니다.

자주 묻는 질문

음수 쪽 범위가 하나 더 큰 이유는 무엇인가요?

0이 음이 아닌 패턴 하나를 차지하기 때문에 8비트 부호 있는 바이트는 −128부터 127까지를 담습니다. −128에는 짝이 되는 양수가 없어서, 부호를 뒤집으면 오버플로되어 다시 −128이 됩니다.

2의 보수에서 부호를 손으로 뒤집으려면 어떻게 하나요?

모든 비트를 뒤집고 1을 더합니다. 5는 0000 0101, 뒤집으면 1111 1010, 1을 더하면 1111 1011이며 이것이 −5입니다.

오버플로가 나면 어떻게 되나요?

하드웨어는 하위 n비트만 남깁니다. 부호 없는 바이트에서 300은 300 − 256 = 44가 됩니다. C에서 부호 있는 오버플로는 정의되지 않은 동작이라 컴파일러가 순환시키지 않을 수 있고, Java와 C#(unchecked)은 순환합니다.

1의 보수와 부호-크기는 어디에 쓰이나요?

지금은 정수에서 거의 쓰이지 않습니다. 부호-크기는 부동소수점의 부호 비트에, 1의 보수는 인터넷 체크섬(RFC 1071)에 남아 있습니다.

최종 업데이트:

인용·퍼가기
APA

kakaoCalc. (2026, November 8). 2의 보수 계산기(부호 있는/없는 정수 변환). https://kakao.mobile/ko/tools/signed-unsigned-converter/

MLA

“2의 보수 계산기(부호 있는/없는 정수 변환).” kakaoCalc, 8 Nov. 2026, kakao.mobile/ko/tools/signed-unsigned-converter/.

광고