고정 크기 부동 소수점 유형
에서stdint.h
(C99), boost/cstdint.hpp 및cstdint
(C++0x) 헤더가 있습니다.int32_t
.
비슷한 크기의 부동 소수점 타입이 있나요?뭐랄까float32_t
?
만약 당신이 그 정보를 알고 싶다면float
IEEE 32비트 타입인지 확인합니다.std::numeric_limits<float>::is_iec559
함수가 아니라 컴파일 시간 상수입니다
방탄성을 더 높이고 싶다면std::numeric_limits<float>::digits
IEEE 표준 2배 정밀도를 몰래 사용하고 있지 않은지 확인합니다.float
24살이어야 합니다.
에 관한 한long double
, 보다 중요한 것은,digits
IEEE 형식에는 128비트(표준 = 113) 또는 80비트(표준 = 64)가 있습니다.
그런 식으로 하는 것은 실용적이지 않을 것이다.float32_t
이는 일반적으로 부동소수점 하드웨어를 사용하고 소프트웨어 구현에 의존하지 않기 때문입니다.
현재 C 또는 C++ 표준에는 이와 같은 것이 없습니다.사실, 이 모든 게 사실이라는 보장조차 없다.float
바이너리 부동소수점 형식이 됩니다.
컴파일러에 따라서는float
type은 IEEE-754 32비트 바이너리 형식이 됩니다.그렇지 않은 사람도 있다.실제로는float
실제로는 IEEE-754 입니다.single
대부분의 비패키지 플랫폼에서는 를 입력합니다.다만, 일부 컴파일러가 보다 넓은 형식의 식을 평가하는 것에 관한 통상의 경고가 적용됩니다.
IEEE-754의 2008 리비전에 C 언어 바인딩을 추가하는 것을 검토하는 작업 그룹이 있습니다.작업 그룹은 이러한 typedef 추가를 권장하는 것을 검토할 수 있습니다.만약 이것이 C에 추가된다면, C++ 규격이 따를 것이라고 생각합니다.결국.
float32_t나 float64_t와 같은 typedef가 어떤 이유로든 실용적이지 않다고 생각되면 익숙한 OS인 컴파일러에 너무 익숙해져서 작은 둥지 밖을 볼 수 없습니다.
32비트 IEEE 부동소수점 연산을 네이티브로 실행하는 하드웨어와 64비트를 실행하는 하드웨어가 있습니다.이러한 시스템은 서로 통신해야 하는 경우도 있습니다.이 경우 각 플랫폼에서 더블이 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
'programing' 카테고리의 다른 글
출력 스트림에 문자열 쓰기 (0) | 2022.08.28 |
---|---|
Vuex에서 상태를 정규화하는 방법 (0) | 2022.08.28 |
VueJ에서는 핸섬 가능, 페이지 새로고침 시에만 테이블 로드 가능 (0) | 2022.08.28 |
v-data-table 가운데 정렬을 하나의 열만 표시 (0) | 2022.08.28 |
구성 요소 재렌더에서 Vue.js 무한 루프 (0) | 2022.08.28 |