2012-12-09 10 views
0

"C의 수치 계산법"은 과학 컴퓨팅의 기술을 읽었으며 1 장에는 부동 소수점 숫자가 다소 아키텍처에 영향을받지 않는 관점에서 어떻게 표현되는지 설명하는 섹션이 있습니다. 이 게시물은 Intel 프로세서의 i386 제품군과 해당 아키텍처에서 부동 소수점 숫자가 어떻게 나타나는지에 대한 것입니다. 내 질문은 구체적으로 편향된 지수가 계산되는 방법과 가수가 어떻게 표현되는지를 목표로합니다. 주요한 것이 가수에 저장되어 있는지 아닌지. "과학 컴퓨팅의 C 예술의 수치 조리법"에서 인텔 : 부동 소수점 숫자 계산

, 나는 공식 주어진 오전 :

의 XMXB^(예 - E를) : s는 기호를 나타 내기 위해 단일 비트이고, M은이다 가수, B는 밑 (2 기수), e는 지수, E는 지수의 바이어스입니다.

  1. 전자는 2의 보수에 저장, 또는 부호없는 8 비트 필드입니까?
  2. E는 바이어스입니다. 바이어스 127입니까?
  3. 가수가 1.00000 (2)으로 읽혀 지거나 .0000000 (2)으로 읽습니까? 여기서 (2)는 기본 2입니다.

답변

1
  1. 전자는 부호없는 8 비트 필드입니다. 바이어스 (E)는 양수 및 음수 지수를 모두 나타낼 수 있도록합니다. 비록 약간의 어색한 생각이 들더라도 실제 계산을 수행 할 때 2를 보완하는 것보다 약간 더 건전한 표현입니다.

  2. 바이어스는 부동 소수점 유형에 따라 다릅니다. 표준 IEEE float의 경우 127입니다. 표준 IEEE double의 경우 1023입니다.

  3. 무슨 뜻인지 확실치 않습니다. 표준 float 및 double 유형에는 일반 숫자 가수 앞에 묵시적으로 1 비트가 있고 비정상 숫자에는 가용하지 않습니다. 이진 표현 (부호, 지수, 가수)이 0 01111111 01110111011101110111011 인 IEEE 플로트를 가지고 있다면 이것을 (-1)^0 * 2^(01111111b) * 1.01110111011101110111011b으로 읽을 수 있습니다. 가수 앞에 1.이라는 첨자가 있음을 유의하십시오.

지수가 가능한 한 작 으면 비정상 숫자가됩니다. 지수가 가능한 한 큰 경우 (모두 1) 무한대와 NaN이 있습니다. 가수는 여기서 다른 의미입니다. 다른 모든 지수는 "정상 수치"를 나타냅니다. 인텔의 80 비트 long double 유형에 대해

이없는 묵시적 1 비트 (그 가수의 높은 비트에 저장된다) 나는 당신이 long double들과 함께 연산을 수행 할 때 발생하는 불러올 수 없습니다 정상적인 표현이지만 묵시적 비트는 스위치 오프된다. I 그들은 x87을보다 쉽게 ​​만들 수 있다고 생각합니다.

1

넵 - 64 비트를 포함한 모든 인텔 86 제품군은 부동 소수점에 대한 표준 인 IEEE 754를 지원합니다. 소스에서

:

http://www.intel.com/standards/floatingpoint.pdf

는 IEEE 754에 대답하기 위해 - 그것이 작동하는 방법을 참조하십시오

http://en.wikipedia.org/wiki/IEEE_754-2008

+0

귀하의 잘못이 아니지만 인텔 링크가 고장났습니다. – Jeff

+0

그냥 시도해보십시오. –

+0

Safari와 Chrome을 사용하는 두 대의 컴퓨터에서 컬링과 wget을 시도했지만 어느 것도 작동하지 않았습니다. 나는 인텔의 기업 VPN을 시험해 보았다. 아무것도 작동하지 않습니다. 나는 그것이 당신을 위해 어떻게 작동하는지 이해하지 못합니다. – Jeff