산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 산업기술

이진법에서 음수 이해: 부호-크기, 보수, 2의 보수

뺄셈은 피감수를 음수 값으로 취급하여 덧셈으로 변환할 수 있습니다. 예를 들어 7 − 5는 7 + (−5)가 됩니다.

양수 이진 표현을 마스터한 후, 뺄셈을 같은 덧셈 루틴으로 수행할 수 있도록 음수를 인코딩하는 것이 다음 단계입니다.

십진법에서는 마이너스 기호가 최상위 자릿수 앞에 붙습니다(예: −5). 이진 하드웨어에서는 하이 또는 로우 두 상태만 있으므로 부호를 비트 패턴 자체 내에 인코딩해야 합니다.

이 문맥에서 "마이너스" 기호 같은 세 번째 기호는 없습니다. 한 비트를 수학적 부호를 나타내도록 예약하는 것이 한 해결책입니다:

이진법에서 음수 이해: 부호-크기, 보수, 2의 보수

비트를 위치 가중치 외의 목적으로 사용하면 혼동을 초래할 수 있습니다. 예를 들어 1101₂는 최상위 비트를 부호로 처리하지 않으면 13으로 읽힙니다.

먼저 최대 크기를 수용하는 데 필요한 총 비트 폭을 정한 뒤, 모든 연산이 그 폭 안에서 이루어지도록 합니다.

아래 예에서 최상위 비트를 부호로 취급하여 범위를 −7(1111₂)부터 +7(0111₂)로 제한함으로써 오해를 방지합니다.

−5를 1101₂로 인코딩하는 것이 부호-크기 체계로, 최상위 비트가 값이 아닌 부호를 나타내며 위치 순수성을 실용성과 맞바꿉니다.

최상위 비트는 부호를 나타내고, 나머지 비트는 표준 위치 값(2의 거듭제곱)을 유지합니다.

보수법

부호-크기는 개념적으로 단순하지만 이진 덧셈을 복잡하게 만듭니다. −5(1101₂)를 일반 덧셈으로 다른 수에 어떻게 더할까요?

별도의 덧셈 알고리즘을 만들면 목적에 어긋나며, 필산 뺄셈과 동등해져 계산상 이점이 없습니다.

대안인 보수법은 음수를 표준 이진 덧셈 방법으로 더할 수 있게 하며 위치 가중치와 자연스럽게 정렬됩니다.

이 방식에서 최상위 비트는 여전히 범위를 구분하지만 이제 음의 자리 가중치(예: −8)를 가집니다. 예를 들어 −5는 다음과 같이 인코딩됩니다:

이진법에서 음수 이해: 부호-크기, 보수, 2의 보수

오른쪽 세 비트로 0~7 크기 표현 가능, 최상위 비트는 0 또는 −8을 나타내므로 −7(1001₂ = −8 + 1 = −7)부터 +7(0111₂ = 0 + 7 = 7)까지 모든 정수 표현 가능.

양수 값은 그대로지만 음수 값은 보수 연산이 필요합니다.

이진법에서 음수 이해: 부호-크기, 보수, 2의 보수

오른쪽 열의 음수 이진수는 오른쪽 세 비트와 최상위 비트의 음의 8자리 가중치의 합이므로 양수와 같은 진행을 따르지 않습니다.

대신 오른쪽 세 비트를 설정하여 음의 8자리 값에 더했을 때 원하는 음수 합계가 나오게 해야 합니다.

2의 보수

오른쪽 세 비트는 양수 대응값의 2의 보수입니다. 예:

이진법에서 음수 이해: 부호-크기, 보수, 2의 보수

음의 가중치 비트가 4번째 비트(−8)일 때, 임의 양수의 2의 보수는 그 수의 음수 등가를 얻기 위해 −8에 더해야 하는 값입니다.

2의 보수 계산은 간단합니다: 모든 비트 반전(1의 보수) 후 1 더하기. 예를 들어 5(101₂)의 2의 보수를 구하려면 먼저 010₂로 반전, 다시 1을 더해 011₂를 얻으며 이는 3비트 2의 보수에서 −5를 나타냅니다.

최상위 비트를 포함해 모든 비트를 한 번에 조작해도 2의 보수 생성은 동일하게 작동합니다. 0101₂(5)를 음수 5로 변환:

모든 비트 반전 → 1010₂; 1 더하기 → 1011₂, 4비트 2의 보수에서 −5를 나타냄.

2의 보수 변환을 수행하기 전에 음의 가중치 비트 위치가 고정되어 있어야 합니다. 8번째 비트가 음의 가중치 비트(10000000₂)라면 0000101₂의 2의 보수는 1111011₂가 되어 8비트 2의 보수에서 −5를 나타냅니다.

따라서 8비트 시스템에서 +5는 00000101₂, −5는 11111011₂입니다.

관련 워크시트:

산업기술

  1. 555 타이머와 4027 플립플롭으로 3비트 이진 카운터 제작
  2. 8진법과 16진법 숫자 체계: 엔지니어를 위한 실용 가이드
  3. 숫자와 숫자 체계: 구별 이해와 실질적 영향
  4. 2의 보수를 이용한 이진 뺄셈
  5. 오피앰프 부 피드백 이해: 전압 팔로워와 안정성
  6. Java 컬렉션 알고리즘 마스터하기: 정렬, 셔플링 등
  7. C++ 숫자 타입 마스터하기: 실전 가이드
  8. MATLAB 숫자 유형: 정수, 부동소수점, 변환과 범위 총정리
  9. 파이썬 숫자(Numbers): 불변 숫자 데이터 타입 이해하기
  10. PLCnext에서 Go 애플리케이션 빌드하기: 초보자 가이드