반응형
정수 부동 소수점 자체가 1.f로 보장됩니까?
내가 쓰면 :
int x = /* any non-zero integer value */;
float y = x;
float z = y / y;
z
정확히 1.f 가 보장됩니까?
C ++ 구현이 IEEE754를 사용하는 경우 예, 이는 보장됩니다. (나눗셈 연산자는 가능한 최상의 부동 소수점 값을 반환하는 데 필요합니다.)
유일한 예외 y / y
일반적으로없는, 1f
때 경우가 y
있다 NaN
, +Inf
, -Inf
, 0f
, 그리고 -0f
당신이 플랫폼에있는 경우, 또는 어디에 int
너무 넓은 그것의 특정 인스턴스가 표현 될 수 없다는 float
것을하지 않고 float
있는로 설정 +Inf
또는 -Inf
1 . 최종 포인트를 제쳐두고, 귀하의 경우 int x = 0;
유일한 예외를 생성 한다는 것을 의미합니다 .
IEEE754는 매우 일반적입니다. 그러나 확실하게 확인하려면
std::numeric_limits<float>::is_iec559;
1 예를 들어 128 비트 int
및 IEEE754 32 비트를 사용 하는 플랫폼 float
은의 특정 값에 대해이 동작을 나타냅니다 x
.
아니요, IEEE754의 경우에도 모든 경우가 아닙니다.
예를 들어를 사용 int x = 0;
하면 NaN을 얻을 수 있습니다. ( 라이브 )
반응형
'code' 카테고리의 다른 글
인쇄 대화 상자가 닫힌 후 자동으로 창 닫기 (0) | 2020.10.25 |
---|---|
Alembic 업그레이드 스크립트에서 삽입 및 업데이트를 어떻게 실행합니까? (0) | 2020.10.24 |
분기 전략 (0) | 2020.10.24 |
태그 간 Git 로그 (0) | 2020.10.24 |
Tomcat 메모리 설정 늘리기 (0) | 2020.10.24 |