컴퓨터 산술

10진수 0.1을 2진수 부동소수점수로 나타냈을 때의 설명으로 올바른 것은 무엇입니까?

  1. A2진수로도 정확히 0.1로 나타낼 수 있으므로 오차는 생기지 않는다
  2. B2진수에서는 무한히 계속되는 소수가 되므로, 반올림한 가까운 값으로 나타내게 된다
  3. C2진수로 나타내면 원래 값보다 정확히 10배 큰 값이 된다
정답과 해설 보기

정답: B. 2진수에서는 무한히 계속되는 소수가 되므로, 반올림한 가까운 값으로 나타내게 된다

10진수 0.1은 2진수로 하면 0.000110011001100…으로 0011이 무한히 반복되는 소수가 됩니다. 부동소수점에서는 가수의 자릿수가 한정되어 있으므로 도중에 반올림한 가까운 값만 기록할 수 있어 약간의 오차가 생깁니다. 분모가 2의 거듭제곱이 아닌 분수는 모두 2진수로 유한한 자릿수로는 나타낼 수 없습니다. 반면 0.5나 0.25처럼 분모가 2의 거듭제곱인 수는 정확히 나타낼 수 있습니다. 값이 10배가 되는 변환은 일어나지 않습니다.

이 분야 연습하기 분야로 돌아가기

컴퓨터 산술의 다른 문제

  1. 많은 프로그래밍 언어에서 배정밀도의 0.1 + 0.2 == 0.3이라는 비교가 거짓이 되는 이유로 올바른 것은 무엇입니까?
  2. IEEE 754 단정밀도의 머신 엡실론(1과, 1 다음으로 큰 표현 가능한 수와의 차)은 얼마입니까?
  3. 단정밀도와 배정밀도 부동소수점수에서 신뢰할 수 있는 10진수 유효 자릿수의 기준 조합으로 올바른 것은 무엇입니까?
  4. IEEE 754 비정규화수(서브노멀 수)의 역할로 올바른 것은 무엇입니까?
  5. 비정규화수를 많이 포함하는 계산에서 일부 프로세서는 처리가 크게 느려질 수 있습니다. 그래서 성능을 우선하는 상황에서 사용되는 설정은 무엇입니까?