हां, आईईईई 754 डबल-परिशुद्धता (*) मान x
हैं जो x != 1.0/(1.0/x)
हैं।
इस संपत्ति के साथ सामान्य मूल्य का एक उदाहरण बनाना आसान है: C99's hexadecimal notation for floating-point values में लिखा गया है 1.0/(1.0/0x1.fffffffffffffp0) == 0x1.ffffffffffffep0
। 0x1.fffffffffffffp0
की अपेक्षा करना महत्वपूर्ण था क्योंकि 1.0/0x1.fffffffffffffp0
एक बिनैड की शुरुआत में पड़ता है, जहां फ़्लोटिंग-पॉइंट नंबर कम घने होते हैं, इसलिए आंतरिकतम विभाजन पर एक बड़ी सापेक्ष त्रुटि होती है। अधिक सटीक, 1.0/0x1.fffffffffffffp0
0.5
और इसके डबल-परिशुद्धता उत्तराधिकारी के बीच मध्य बिंदु से ऊपर गिरता है, ताकि 1.0/0x1.fffffffffffffp0
एक बड़ी सापेक्ष त्रुटि के साथ 0.5 के उत्तराधिकारी तक गोल हो।
दशमलव %.16e
प्रारूप में, 0x1.fffffffffffffp0
1.9999999999999998e+00
है और 0x1.ffffffffffffep0
1.9999999999999996e+00
है।
(*) वहाँ उलटा समारोह आईईईई 754 प्रारूप से किसी के लिए सवाल में संपत्ति के लिए के लिए कोई कारण नहीं है
स्रोत
2016-08-02 07:46:38
वहाँ स्पष्ट मामलों रहे हैं जहां, इस तरह के अनंत और अनिश्चितकालीन, और संभवतः के रूप में यह नहीं कर सकते denormalized संख्या भी। लेकिन यह बाकी के लिए एक अच्छा सवाल है। –
ऐसा लगता है कि यह शून्य और अनंत के लिए ठीक काम करेगा ... –
सरल काउंटर उदाहरण से कोई यह दिखा सकता है कि एक आईईईई -754 अनुपालन फ्लोटिंग-पॉइंट पारस्परिक इस फैशन में वापस नहीं किया जा सकता है। उदाहरण के लिए, 'बाइनरी 32':' x = 0x1.fffffep-1: 1.0f/x = 0x1.000002p + 0 1.0f/(1.0f/x) = 0x1 के साथ राउंडिंग मोड को निकटतम-या-यहां तक कि राउंडिंग मोड का उपयोग करना। fffffcp-1' और 'binary64' के साथ:' x = 0x1.fffffffffffffp-1: 1.0f/x = 0x1.0000000000001p + 0 1.0f/(1.0f/x) = 0x1.ffffffffffffep-1' – njuffa