숫자·비트 연산·단위

2의 보수 계산기같은 비트, 다른 해석

입력이 수학적 값인지 저장된 비트 패턴인지 먼저 선택하세요.

2의 보수 계산기

입력

정수 하나, 최대 256자입니다. 0b/0o/0x는 선택한 기수와 일치해야 합니다. 내부 공백, 구분자, 줄바꿈, 소수는 허용하지 않습니다.

입력은 이 브라우저에서 처리되며 서버로 전송되지 않습니다.

결과

10진수 결과
-42
입력의 십진수 값
-42
부호 있는 10진수
-42
부호 없는 10진수
214
2진수
11010110
16진수
0xD6
최상위 비트
1
허용 입력 범위
-128 … 127
부호 있는 범위
-128 … 127
부호 없는 범위
0 … 255
빅 엔디언 바이트
D6
리틀 엔디언 바이트
D6

음수 인코딩 단계

1. 절댓값을 이진수로 표시
00101010
2. 모든 비트 반전
11010101
3. 1 더하기
11010110

옵션

값 모드는 수학적 정수를 인코딩합니다. 비트 패턴은 음이 아닌 패턴을 읽고 왼쪽을 0으로 채우며 음수 부호를 허용하지 않습니다.

설정을 바꾸면 현재 텍스트를 다시 해석합니다. 두 바이트 순서는 완성된 워드를 사용하며 바이트 내부 비트 순서를 유지합니다.

입력이 선택한 범위에 들어갑니다.

디버거의 −1과 패킷의 FF가 왜 다른지 확인할 때 2의 보수 계산기가 도움이 됩니다. 비트를 수정하기 전에 필드의 폭과 부호 해석부터 맞추면, 같은 데이터가 서로 다른 숫자로 표시되는 이유를 찾을 수 있습니다.

십진수 255를 부호 있는 바이트로 인코딩하는 것과 기존 FF 패턴을 읽는 것은 다른 작업입니다. 전자는 범위를 벗어나지만 후자는 온전한 8비트입니다. 입력 의미를 별도로 선택하므로 기수만 바꾸다가 이 차이를 놓치지 않습니다.

2의 보수 계산기로 확인할 차이

원래 값과 잘린 결과를 나란히

2의 보수 계산기에 300을 입력하고 8비트를 선택하면 입력은 그대로 300이며 남는 값은 44입니다. 범위 초과는 잘못된 문자 오류와 구분됩니다. 원본을 잃지 않고 하위 비트와 두 십진수 해석을 비교하며, 잘린 값으로 입력을 덮어쓰는 작업은 제공하지 않습니다.

원래 긴 비트 행은 유지되고 하위 여덟 위치만 짧은 워드로 복사되며 상위 위치가 따로 강조된 그림.

비트가 아닌 바이트 위치를 교환

32비트 0x12345678의 빅 엔디언 표시는 12 34 56 78, 리틀 엔디언 표시는 78 56 34 12입니다. 각 바이트 안의 비트 순서는 그대로입니다. 부호나 숫자가 바뀌는 것이 아니라 같은 워드를 저장하는 순서 두 가지를 보여 줍니다.

두 색상의 바이트 블록이 행 사이에서 자리를 바꾸지만 블록 안의 표시는 같은 순서를 유지하는 그림.

의미와 폭을 먼저 정하기

01

값인지 패턴인지 선택

기본값은 −42, 십진수, 8비트, 부호 있음이며 자동 계산이 켜져 있습니다. 기존 FF 데이터를 읽으려면 비트 패턴과 16진수를 선택하세요. 기수를 바꾸면 현재 문자를 다시 읽을 뿐 입력 텍스트를 새 기수로 변환하지 않습니다.

02

폭 변경과 부호 확장 구분

FF 패턴을 16비트로 넓히면 00FF, 즉 255가 됩니다. 기존 텍스트 길이로 부호 확장을 추측하지 않습니다. 폭을 늘려도 수학적 값 −1을 유지하려면 값 모드에 −1을 입력하세요. 그때 결과가 FFFF가 됩니다.

03

새 결과가 준비된 뒤 내보내기

자동 계산은 350ms 동안 입력이 멈추면 실행됩니다. 끄면 계산 버튼과 Ctrl/Cmd + Enter를 사용할 수 있습니다. 수정 직후 내보내기가 잠기며 예제와 비우기는 변경 필드 수를 미리 보여 줍니다. 적용 뒤에는 입력과 결과를 함께 되돌릴 수 있습니다.

워드 전체를 함께 살펴보기

두 가지 십진수 해석

부호 있는 2진수는 최상위 비트에 음의 가중치를 둡니다. 부호 없는 해석은 모든 비트를 크기로 읽습니다. 8비트 FF는 각각 −1과 255입니다. 선택한 해석을 주 결과로 보여 주면서 반대 해석과 두 범위도 계속 표시합니다.

음수 변환의 중간 단계

2의 보수 변환기로 −42를 살펴보면 절댓값 00101010, 반전 11010101, 1을 더한 11010110을 확인할 수 있습니다. 선택한 폭의 부호 있는 범위 안에 드는 음수 값에서만 이 단계를 표시하므로 초과값을 정확한 인코딩으로 오해하지 않습니다.

64비트 정밀도 유지

부호 없는 최댓값 18446744073709551615까지 정수 연산으로 정확히 처리합니다. 이진수와 16진수는 선택한 폭에 맞춰 앞을 0으로 채웁니다. 보고서에는 원문과 입력 의미, 기수, 범위 상태, 두 값 및 바이트 순서가 포함되어 계산 맥락을 보존합니다.

입력과 변환의 경계

초과값은 모듈러 미리보기
값 모드에서는 선택한 부호 범위로 초과 여부를 판단합니다. 하위 w비트는 2^w에 대한 음이 아닌 나머지로 구합니다. 부호 있는 8비트의 128은 −128로, 256은 0으로 나타나며 원문은 그대로 남습니다. 잘림 적용 버튼은 없습니다.
짧은 패턴은 0으로 채움
비트 패턴은 음이 아닌 정수만 받습니다. −0을 포함해 음수 부호를 거부합니다. 앞의 0이 많다고 초과로 보지 않으며 값이 2^w−1보다 클 때만 초과입니다. 8비트에서 1111은 15이고, 최상위 비트가 1이라는 사실만으로 오버플로가 되지는 않습니다.
정수 문법과 길이 제한
기수는 2, 8, 10, 16이며 입력은 최대 256자입니다. 바깥쪽 ASCII 공백과 탭만 제거합니다. 내부 공백, 구분자, 줄바꿈, 소수, 십진 지수 표기, 산술식은 거부합니다. 파일과 URL, 여러 줄 일괄 입력도 지원하지 않습니다.
별도 인코딩 형식은 제외
지원 폭은 8, 16, 32, 64비트입니다. 부호와 절댓값 표현, 1의 보수 독립 변환, 음의 영, 부동소수점은 제공하지 않습니다. 반전 단계는 음수를 인코딩하는 중간 과정이며 다른 부호 표현법을 선택하는 기능은 아닙니다.
실행 환경을 모사하지 않음
이 도구의 순환 규칙이 특정 언어의 예외, 컴파일러 동작, CPU 플래그 또는 포화 연산 결과를 보장하지는 않습니다. 바이트 순서는 바이트 단위로만 바뀌고 8비트에서는 두 순서가 같습니다. 논리 연산, 시프트, 두 수의 산술 계산은 별도 도구 범위입니다.

2의 보수 계산기 질문

음의 십진수를 어떻게 2의 보수로 바꾸나요?

폭을 정한 뒤 절댓값을 그 폭의 이진수로 씁니다. 전체 비트를 반전하고 1을 더합니다. −5를 8비트로 바꾸면 00000101 → 11111010 → 11111011입니다. 먼저 원래 값이 선택한 부호 있는 범위 안에 드는지 확인하세요.

8비트 부호 있는 정수의 범위는 어디까지인가요?

−128부터 127까지입니다. 256개 패턴 중 절반은 음수, 나머지 절반은 0을 포함한 음이 아닌 수를 나타냅니다. 그래서 가장 작은 음수의 절댓값이 가장 큰 양수보다 하나 크며 +128은 범위를 벗어납니다.

보수 비트열을 십진수로 읽으려면 어떻게 하나요?

비트 패턴 모드와 원래 기수, 폭을 선택합니다. 최상위 비트가 1이면 부호 없는 크기에서 2^w를 뺍니다. 8비트 11111011은 251−256=−5입니다. 결과의 부호 있는 값과 없는 값을 함께 비교할 수 있습니다.

비트 수를 먼저 정해야 하는 이유는 무엇인가요?

부호 위치와 표현 범위가 폭에 따라 달라집니다. 같은 FF도 8비트에서는 −1이지만 16비트에서는 00FF, 즉 255입니다. 저장된 데이터를 읽을 때는 텍스트 길이로 추정하지 말고 원래 필드의 비트 수를 선택해야 합니다.

64비트를 넘는 정수도 변환할 수 있나요?

최종 워드 폭은 최대 64비트입니다. 256자 제한 안의 더 큰 정수는 입력할 수 있지만 범위 초과 또는 패턴 초과로 표시되고 하위 비트의 미리보기만 제공합니다. 더 큰 임의 폭을 정확히 저장하는 변환 기능은 아닙니다.

결과가 예상과 다른가요?

다른 경계값 확인하기

2의 보수 계산기에서 경계값 하나를 확인한 뒤 폭이나 입력 의미를 바꿔 비교하세요. 새 보고서에 원래 값과 범위 상태를 함께 남겨 디버거 및 프로토콜 문서와 대조할 수 있습니다.