में इन्फिनिटी मैं एमएसवीसी ++ का उपयोग कर रहा हूं, और मैं अपने कोड में विशेष मूल्य इन्फिनिटी का उपयोग करना चाहता हूं।एमएसवीसी ++
एमएसवीसी ++ में अनंतता के लिए उपयोग करने के लिए बाइट पैटर्न या निरंतर क्या है?
1.0f/0.0f मान 0 क्यों दिखता है?
#include <stdio.h>
#include <limits.h>
int main()
{
float zero = 0.0f ;
float inf = 1.0f/zero ;
printf("%f\n", inf) ; // 1.#INF00
printf("%x\n", inf) ; // why is this 0?
printf("%f\n", zero) ; // 0.000000
printf("%x\n", zero) ; // 0
}
साफ! यह कैसे काम करता है? क्या कुछ 'numeric_limits :: अनंतता() 'असाइन करना ठीक है? इन्फिनिटी के लिए बिट पैटर्न क्या है? यह कैसे पता चलता है कि पैटर्न मेरे उदाहरण में स्पष्ट रूप से 0 है? –
bobobobo
@bobobobo: जब आप किसी चर के रूप में किसी ऐसे व्यवहार के रूप में व्यवहार करते हैं जो 'printf' में नहीं है, तो अपेक्षा करने के लिए बहुत कुछ नहीं है, यह तोड़ सकता है। मुझे लगता है कि पीटरचेन इसे कवर करता है। – GManNickG