다음 코드는 C에서와 같이 작동하는 이유는 무엇입니까? 따라서IEEE 754 : 정확히 작동합니까?
2147483647 = 0 1001 1101 1111 1111 1111 1111 1111 111
(0.11111111111111111111111)base2 = (1-(0.5)^23)base10
=> (1.11111111111111111111111)base2 = (1 + 1-(0.5)^23)base10 = (1.99999988)base10
, 소수에 754 표기법 다시 IEEE 변환 : 1.99999988 * 2^30 = 2147483520
그래서 기술적으로 C 프로그램은 2,147,483,520을 인쇄해야합니다, 여기
float x = 2147483647; //2^31
printf("%f\n", x); //Outputs 2147483648
내 생각의 과정이다 ?