산업기술
부호 있는 이진수에 대한 한 가지 주의 사항은 오버플로의 경우입니다. 여기서 덧셈 또는 뺄셈 문제에 대한 답은 할당된 비트 수로 표현할 수 있는 크기를 초과합니다. 부호 비트의 위치는 문제의 시작 부분부터 고정되어 있음을 기억하십시오.
마지막 예제 문제에서는 5개의 이진 비트를 사용하여 숫자의 크기를 나타내고 맨 왼쪽(6번째) 비트를 음수 가중치 또는 부호 비트로 사용했습니다. 크기를 나타내는 5비트로 표현 범위는 2 5 입니다. , 또는 0에서 최대까지 32개의 정수 단계
즉, 최대 +3110 숫자를 나타낼 수 있습니다. (0111112 ) 또는 최저 -3210 (1000002 ).
두 개의 이진수로 덧셈 문제를 설정하면 여섯 번째 비트는 부호에 사용되며 결과는 +3110을 초과합니다. 또는 -3210 미만입니다. , 우리의 대답은 틀릴 것입니다. 1710을 추가해 보겠습니다. 및 1910 이 오버플로 조건이 과도한 양수에 대해 어떻게 작동하는지 확인하려면:
정답(1001002 ), 여섯 번째 비트를 -3210으로 해석 장소는 실제로 -2810과 같습니다. , +3610 아님 +1710으로 얻을 수 있듯이 및 +1910 함께 추가되었습니다! 분명히 이것은 옳지 않습니다. 무엇이 잘못되었나요?
정답은 우리가 작업하고 있는 6비트 숫자 필드의 제한에 있습니다. ) 지정된 비트 필드의 허용 한도를 초과하면 오버플로 오류가 발생합니다. .
간단히 말해서, 6자리는 정확한 합을 나타내기에 충분한 비트를 제공하지 않으므로 가장 왼쪽의 "캐리" 비트를 버리는 전략을 사용하여 얻은 수치는 올바르지 않습니다.
6비트 이진 필드에 비해 너무 낮은 합계를 생성하기 위해 두 개의 음수를 더하면 유사한 오류가 발생합니다. -1710을 추가해 보겠습니다. 및 -1910 이것이 어떻게 작동하는지 함께 보기 위해(또는 경우에 따라 작동하지 않을 수도 있습니다!):
(잘못된) 대답은 긍정적입니다. 스물 여덟. 음수 17과 음수 19의 실제 합이 너무 낮아서 5비트 크기 필드와 6번째 부호 비트로 적절하게 표현되지 않는다는 사실이 이러한 어려움의 근본 원인입니다.
이번에는 부호 비트에 일곱 번째 비트를 사용하고 크기를 나타내는 데 6비트를 사용할 수 있다는 점을 제외하고 이 두 가지 문제를 다시 시도해 보겠습니다.
합계의 크기를 처리할 수 있을 만큼 충분히 큰 비트 필드를 사용하여 정답에 도달합니다. 이 샘플 문제에서 우리는 10진수 형식의 덧셈 문제를 수행하고 결과를 이진 답변과 비교하여 오버플로 오류를 감지할 수 있었습니다.
예를 들어 +1710을 추가할 때 및 +1910 우리는 함께 답을 당연히해야 한다는 것을 알고 있었습니다. +3610 , 따라서 이진 합계가 -2810으로 체크아웃된 경우 , 우리는 뭔가 잘못되었다는 것을 알고 있었습니다. 이것은 오버플로를 감지하는 유효한 방법이지만 그다지 효율적이지 않습니다.
결국, 보완의 전체 아이디어는 이진수를 안정적으로 더할 수 있고 동일한 숫자를 십진수 형식으로 더하여 결과를 다시 확인할 필요가 없다는 것입니다! 이것은 이진 양을 함께 추가하기 위해 전자 회로를 구축하려는 목적에 특히 해당됩니다. 회로는 정답이 무엇인지 이미 알고 있는 사람의 감독 없이도 자체 오버플로를 확인할 수 있어야 합니다.
우리에게 필요한 것은 추가 산술이 필요하지 않은 간단한 오류 감지 방법입니다. 아마도 가장 우아한 해결책은 기호를 확인하는 것입니다. 합계를 계산하고 추가된 숫자의 부호와 비교합니다.
분명히 두 개의 양수를 더하면 양수 결과가 나오고 두 개의 음수를 더하면 음수 결과가 나와야 합니다. 예제 문제에서 오버플로 조건이 있을 때마다 합계의 부호는 항상 반대였습니다. 추가된 두 숫자 중:+1710 플러스 +1910 -2810 제공 , 또는 -1710 플러스 -1910 +2810 제공 .
징후만 확인함으로써 우리는 무엇인가 잘못되었다는 것을 알 수 있습니다. 그러나 음수에 양수를 더한 경우는 어떻습니까? 합이 정확하려면 어떤 기호가 되어야 합니다. 또는 더 정확하게는 합계의 어떤 기호가 반드시 오버플로 오류를 나타냅니까?
이에 대한 대답도 마찬가지로 우아합니다. 절대 반대 부호의 두 수를 더하면 오버플로 오류가 발생합니다! 그 이유는 오버플로의 특성을 고려할 때 명확합니다. 오버플로는 숫자의 크기가 비트 필드의 크기가 허용하는 범위를 초과할 때 발생합니다.
동일하게 부호가 있는 두 숫자의 합은 두 숫자의 비트 필드 범위를 훨씬 초과할 수 있으므로 이 경우 오버플로가 발생할 수 있습니다. 그러나 양수를 음수에 더하면 합은 더한 두 수보다 항상 0에 더 가깝습니다. 그 크기는 반드시 원래 숫자의 크기보다 작아서 오버플로가 불가능합니다.
다행히도 이 오버플로 감지 기술은 전자 회로에서 쉽게 구현되며 디지털 가산기 회로의 표준 기능입니다. 다음 장에서 다룰 주제입니다.
관련 워크시트:
<울>산업기술
세계 경제의 거의 모든 부분과 심지어 우리의 삶도 디지털화된 시스템에 의존하여 작동합니다. 따라서 디지털 PCB는 시장의 요구를 충족시키는 데 필수적입니다. 전자 제품 제조업체 또는 설계자인 경우 이러한 회로 기판에 대한 심층적인 이해가 있어야 운영 분야에서 관련성을 유지할 수 있습니다. 이 기사에서는 디지털 회로 기판의 세계에 대해 자세히 알아볼 것이므로 계속 읽으십시오! 디지털 PCB란 무엇입니까? 아날로그 PCB와 마찬가지로 디지털 회로 기판에는 트랙, 전도성 패드 및 기타 기능이 포함되어 있습니다. 집합적으로 이러한
오버플로 밸브는 배관, 발전 및 기타 응용 분야에서 일반적으로 사용되는 장치로, 파이프가 밸브 위의 라인에 압력을 유지하기 위해 가압된 재료를 전도합니다. 또한 압력 상승을 방지하기 위한 안전 장치로 설치할 수 있으며 센서 및 경보와 함께 사용할 경우 작업자에게 라인을 따라 문제를 경고할 수 있습니다. 많은 소비자, 특히 난방 및 요리에 프로판 연료를 사용하는 소비자는 집 주변에 밸브를 한두 개 가지고 있습니다. 대부분의 경우 라인의 상태를 나타내는 압력 다이얼이 장착되어 있습니다. 이 밸브는 자체에서 압력 상승 파이프를 감지하