컴퓨터 산술
신호 처리에서 사용되는 포화 연산의 설명으로 올바른 것은 무엇입니까?
- A결과가 표현 가능한 최댓값을 넘으면 반대쪽으로 되돌아 넘어가지 않고 최댓값에 머문다
- B결과가 최댓값을 넘으면 자동으로 비트 수를 늘려 정확한 값을 유지한다
- C결과가 최댓값을 넘으면 0으로 되돌리고 다시 시작한다
정답과 해설 보기
정답: A. 결과가 표현 가능한 최댓값을 넘으면 반대쪽으로 되돌아 넘어가지 않고 최댓값에 머문다
일반적인 정수 연산에서는 최댓값을 넘으면 오버플로로 최솟값 쪽으로 되돌아 넘어가, 예를 들어 8비트 부호 있는 정수에서 127 + 1은 −128이 됩니다. 음성이나 영상에서 이것이 일어나면 가장 밝은 점이 갑자기 어두워지는 것 같은 큰 오차가 됩니다. 포화 연산에서는 최댓값을 넘으면 최댓값(127), 최솟값 미만이면 최솟값(−128)에 머무르므로 오차가 작게 억제됩니다. DSP나 SIMD 명령에 마련되어 있습니다. 비트 수를 늘리거나 0으로 되돌리지는 않습니다.