고정 크기 부동 소수점 유형
에서 stdint.h
(C99), 부스트 / cstdint.hpp , 및 cstdint
(C + +0)가 헤더, 다른 사람의 사이에서, 유형 int32_t
.
비슷한 고정 크기 부동 소수점 유형이 있습니까? 같은 거 float32_t
?
현재 C 또는 C ++ 표준에는 이와 같은 것이 없습니다. 사실, float
이진 부동 소수점 형식이 될 것이라는 보장조차 없습니다 .
일부 컴파일러는 float
유형이 IEEE-754 32 비트 이진 형식 임을 보장 합니다. 일부는 그렇지 않습니다. 실제로, float
실제로 IEEE-754 인 single
에 유형 가장 넓은 형식으로 식을 평가하는 어떤 컴파일러에 대한 일반적인주의 사항이 적용하지만, 비 임베디드 플랫폼.
2008 년 개정 된 IEEE-754에 대한 C 언어 바인딩 추가를 논의하는 작업 그룹이 있으며, 이러한 typedef 추가를 권장 할 수 있습니다. 이것이 C에 추가되면 C ++ 표준이 결국 따라 올 것이라고 예상합니다.
당신이 당신의 여부를 알고 싶은 경우 float
는 IEEE 32 비트 형식입니다 확인 std::numeric_limits<float>::is_iec559
. 함수가 아니라 컴파일 타임 상수입니다.
더 방탄하고 싶다면 std::numeric_limits<float>::digits
.NET 용 IEEE 표준 배정 밀도를 몰래 사용하고 있지 않은지 확인하십시오 float
. 24이어야합니다.
이에 올 때 long double
, 그것을 확인하는 것이 더 중요하다 digits
128 비트 (숫자 = 113) 또는 80 비트 (숫자 = 64) : 합리적이 될 수있는 몇 IEEE 형식이 있기 때문에.
float32_t
일반적으로 사용 가능한 경우 부동 소수점 하드웨어를 사용하고 소프트웨어 구현으로 대체하지 않기를 원하기 때문에 그렇게 하는 것은 실용적이지 않습니다.
어떤 이유로 든 float32_t 및 float64_t와 같은 typedef를 사용하는 것이 비현실적이라고 생각한다면 익숙한 OS, 컴파일러에 너무 익숙해서 작은 둥지 밖을 볼 수 없습니다.
기본적으로 32 비트 IEEE 부동 소수점 연산을 실행하는 하드웨어와 64 비트를 실행하는 다른 하드웨어가 있습니다. 때로는 그러한 시스템이 서로 통신해야하는 경우도 있습니다.이 경우 각 플랫폼에서 double이 32 비트인지 64 비트인지 아는 것이 매우 중요합니다. 32 비트 플랫폼이 다른 64 비트 값을 기반으로 과도한 계산을 수행하는 경우 타이밍 및 속도 요구 사항에 따라 더 낮은 정밀도로 캐스팅하는 것이 좋습니다.
나는 내 플랫폼에 얼마나 많은 비트가 있는지 정확히 알지 못하면 수레와 복식을 사용하는 것이 개인적으로 불편합니다. 일부 통신 채널을 통해 다른 플랫폼으로 전송하려면 더욱 그렇습니다.
현재 다음 유형을 언어에 추가하는 제안이 있습니다.
decimal32
decimal64
decimal128
언젠가를 통해 액세스 할 수 있습니다 #include <decimal>
.
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3871.html
참고 URL : https://stackoverflow.com/questions/2524737/fixed-size-floating-point-types
'developer tip' 카테고리의 다른 글
동일한 시스템에서 여러 Java 프로그램이 실행되는 경우 (0) | 2020.10.08 |
---|---|
계수를 사용한 C 추가 (0) | 2020.10.08 |
REST Api에 대한 자동 테스트 (0) | 2020.10.08 |
REST-본문에 ID를 넣을까요? (0) | 2020.10.08 |
Maven 종속성을 전역 적으로 제외하는 방법이 있습니까? (0) | 2020.10.08 |