컴퓨터 산술
단정밀도 부동소수점수에서 1억(10⁸)에 1을 더해도 결과가 1억 그대로입니다. 이 현상의 설명으로 올바른 것은 무엇입니까?
- A1억은 단정밀도로 나타낼 수 없으므로 결과가 NaN이 되어 있다
- B유효 자릿수가 약 7자리밖에 없어 1이 반올림으로 사라지기 때문
- C덧셈 명령이 큰 수의 계산을 생략하도록 정해져 있다
정답과 해설 보기
정답: B. 유효 자릿수가 약 7자리밖에 없어 1이 반올림으로 사라지기 때문
단정밀도는 유효숫자가 약 7자리이며, 1억 부근에서는 표현 가능한 수의 간격이 8입니다. 1억 + 1은 표현 가능한 두 값 사이에 들어가므로 가장 가까운 1억으로 반올림되어 1이 사라집니다. 이처럼 크기가 다른 수를 더하면 작은 쪽의 정보가 사라지는 현상을 정보 누락(정보 손실)이라 합니다. 작은 값을 대량으로 더할 때는 작은 것부터 먼저 더하거나 보정이 있는 덧셈을 사용하는 등의 방법을 씁니다. 1억은 표현 가능한 수이며 NaN이 되지 않습니다.