[numbers] 고정 소수점 대 부동 소수점 수

고정 소수점과 부동 소수점 숫자에 대한 정의를 Google 전체에서 읽기 어렵 기 때문에 이해할 수 없습니다. 그러나 내가 읽은 어떤 것도 그들이 실제로 무엇인지에 대한 간단한 설명을 제공하지 않습니다. 예를 들어 평범한 정의를 얻을 수 있습니까?



답변

고정 소수점 숫자에는 정수 부분 (소수점 왼쪽 부분)에 대해 예약 된 특정 수의 비트 (또는 자릿수)와 소수 부분 (소수점 오른쪽 부분)에 대해 예약 된 특정 비트 수가 있습니다. 포인트). 숫자가 아무리 크든 작든 상관없이 항상 각 부분에 대해 동일한 수의 비트를 사용합니다. 예를 들어 고정 소수점 형식이 10 진수 인 IIIII.FFFFF경우 나타낼 수있는 가장 큰 숫자는 99999.99999이고 0이 아닌 가장 작은 숫자는입니다 00000.00001. 이러한 숫자를 처리하는 모든 코드에는 소수점이 어디에 있는지에 대한 기본 지식이 있어야합니다.

부동 소수점 숫자는 정수 부분 또는 소수 부분에 대해 특정 비트 수를 예약하지 않습니다. 대신,이 번호에 대한 일정한 수의 비트 (착신 보유 가수 또는 유효 숫자 ) 및 말 일정한 수의 비트 위치를 (착신 소수 자리가 앉고 번호 내의 지수 ). 따라서 지수에 대해 2 자리가 예약 된 10 자리의 부동 소수점 숫자는의 가장 큰 값 9.9999999e+50과 0이 아닌 가장 작은 값을 나타낼 수 있습니다 0.0000001e-49.


답변

고정 소수점 숫자는 소수점 뒤에 고정 된 자릿수가 있음을 의미합니다. 부동 소수점 숫자는 소수점 뒤에 다양한 자릿수를 허용합니다.

예를 들어 소수점 뒤에 정확히 4 자리가 필요한 숫자를 저장하는 방법이 있다면 고정 소수점입니다. 그 제한없이 그것은 부동 소수점입니다.

종종 고정 소수점을 사용할 때 프로그래머는 실제로 정수를 사용하고 일부 숫자가 소수점을 넘어선다고 가정합니다. 예를 들어, 두 자리의 정밀도를 유지하고 싶을 수 있으므로 100은 실제로 1.00을 의미하고 101은 1.01을 의미하며 12345는 123.45를 의미합니다.

부동 소수점 숫자는 동일한 방식으로 매우 작거나 매우 큰 숫자를 나타낼 수 있기 때문에보다 일반적인 용도이지만 소수점 자리에 대한 추가 저장 공간을 확보해야하는 경우 약간의 불이익이 있습니다.


답변

내 이해에서 고정 소수점 산술은 정수를 사용하여 수행됩니다. 소수점 부분이 고정 된 양의 비트로 저장되거나 숫자에 필요한 소수점 정밀도 자릿수를 곱합니다.

수의 경우 예를 들어, 12.34요구가 저장 될 우리는 소수점 이후 정밀도의 두 자리가 필요 수를 곱하여 100얻을 1234. 이 숫자에 대해 수학을 수행 할 때이 규칙 세트를 사용합니다. 추가 5620또는 56.20이 번호에 굴복 할 6854데이터 또는68.54 .

고정 소수점 숫자의 소수 부분을 계산하려면 모듈로 (%) 피연산자를 사용합니다.

12.34 (의사 코드) :

v1 = 1234 / 100 // get the whole number
v2 = 1234 % 100 // get the decimal number (100ths of a whole).
print v1 + "." + v2 // "12.34"

부동 소수점 숫자는 프로그래밍에서 완전히 다른 이야기입니다. 부동 소수점 숫자에 대한 현재 표준은 숫자 데이터에 23 비트, 지수에 8 비트, 부호에 1과 같은 것을 사용합니다. 이에 대한 자세한 내용은이 Wikipedia 링크를 참조하십시오.


답변

‘고정 소수점’이라는 용어는 소수점 뒤, 때로는 앞까지 고정 된 자릿수로 숫자가 표현되는 해당 방식을 나타냅니다. 부동 소수점 표현을 사용하면 소수점의 위치가 숫자의 유효 자릿수를 기준으로 ‘부동’할 수 있습니다. 예를 들어 균일 한 소수점 배치 규칙을 사용하는 고정 소수점 표현은 숫자 123.45, 1234.56, 12345.67 등을 나타낼 수있는 반면 부동 소수점 표현은 1.234567, 123456.7, 0.00001234567, 1234567000000000 등을 추가로 나타낼 수 있습니다.


답변

번호 123.456789

  • 정수로서이 숫자는 123이됩니다.
  • 고정 소수점 (2)으로서이 숫자는 123.46이됩니다 (반올림했다고 가정).
  • 부동 소수점으로서이 숫자는 123.456789가됩니다.

부동 소수점을 사용하면 대부분의 모든 숫자를 매우 정확하게 표현할 수 있습니다. 고정은 덜 정확하지만 컴퓨터에서는 더 간단합니다 ..


답변