고정 소수점과 부동 소수점 숫자에 대한 정의를 Google 전체에서 읽기 어렵 기 때문에 이해할 수 없습니다. 그러나 내가 읽은 어떤 것도 그들이 실제로 무엇인지에 대한 간단한 설명을 제공하지 않습니다. 예를 들어 평범한 정의를 얻을 수 있습니까?
고정 소수점과 부동 소수점 숫자에 대한 정의를 Google 전체에서 읽기 어렵 기 때문에 이해할 수 없습니다. 그러나 내가 읽은 어떤 것도 그들이 실제로 무엇인지에 대한 간단한 설명을 제공하지 않습니다. 예를 들어 평범한 정의를 얻을 수 있습니까?
답변:
고정 소수점 숫자에는 정수 부분 (소수점 왼쪽 부분)에 대해 예약 된 특정 수의 비트 (또는 자릿수)와 소수 부분 (소수점 오른쪽 부분)에 대해 예약 된 특정 비트 수가 있습니다. 포인트). 숫자가 아무리 크든 작든 상관없이 항상 각 부분에 대해 동일한 수의 비트를 사용합니다. 예를 들어 고정 소수점 형식이 10 진수 인 IIIII.FFFFF
경우 나타낼 수있는 가장 큰 숫자는 99999.99999
이고 0이 아닌 가장 작은 숫자는입니다 00000.00001
. 이러한 숫자를 처리하는 모든 코드에는 소수점이 어디에 있는지에 대한 기본 지식이 있어야합니다.
부동 소수점 숫자는 정수 부분 또는 소수 부분에 대해 특정 비트 수를 예약하지 않습니다. 대신,이 번호에 대한 일정한 수의 비트 (착신 보유 가수 또는 유효 숫자 ) 및 말 일정한 수의 비트 위치를 (착신 소수 자리가 앉고 번호 내의 지수 ). 따라서 지수에 대해 2 자리가 예약 된 10 자리의 부동 소수점 숫자는의 가장 큰 값 9.9999999e+50
과 0이 아닌 가장 작은 값을 나타낼 수 있습니다 0.0000001e-49
.
-9.9999999e+50
.
00000.00001
입니까? 나는 00000.00000
대신 볼 것으로 기대하고 있습니다 . 또한 고정 소수점 숫자에 대해 더 자세히 설명하는 참조가 있습니까?
고정 소수점 숫자는 소수점 뒤에 고정 된 자릿수가 있음을 의미합니다. 부동 소수점 숫자는 소수점 뒤에 다양한 자릿수를 허용합니다.
예를 들어 소수점 뒤에 정확히 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
부동 소수점을 사용하면 대부분의 모든 숫자를 매우 정확하게 표현할 수 있습니다. 고정은 덜 정확하지만 컴퓨터에서는 더 간단합니다 ..