• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

64비트 부동소수점 내용 중

22.09.22 21:32 작성 조회수 262

0

좋은 내용의 강의 감사드립니다.

64비트 부동소수점 강의 내용의 정리에 대해 질문남깁니다.

1.

결국 js는 number를 int, float에 관계없이 64비트 부동소수점의 형태로 다루고 이로 인해 소수점 연산에 대해 오차가 발생할 수 있다(구체적으로 가수부 제한인 52비트를 넘는 경우).

이를 보기 위해 주어진 소수(0.1과 0.2)를 2진수로 고쳐 연산을 하고 10진수로 고쳐서 그 예시를 들었다.

라고 이해를 하였는데 제대로 이해한게 맞을까요?

 

  1. 2진법으로 표현된 숫자에 대해 10진법으로 고치기 위해 0이하의 숫자에 대해 Math*pow(2, -55)한 원리가 궁급합니다.

감사합니다.

답변 1

답변을 작성해보세요.

0

아래와 같이 답변을 드립니다.

  1. 지금 이해하고 계신 내용이 맞습니다.

  2. 2진법을 10진법을 고치기 위해서 0이하의 숫자 자리수가 55자리입니다. 그래서 0이하의 2진수를 parseInt("0이하의 2진수",2) 정수로 바꾸고 여기에 pow(2,-55) 곱하는데요, pow 함수의 두번째 파라미터가 음수이면 1/2^55 로 계산이 되어서 정수를 다시 소수점을 만들게 됩니다.