2012-03-09 12 views
9

क्या किसी दिए गए संकेत, मंटिसा और एक्सपोनेंट (सभी बाइनरी या दशमलव) से फ्लोट (डबल) बनाने के लिए कोई मैक्रो या फ़ंक्शन है जो या तो एक वैध फ्लोट (डबल) नंबर देता है या इनपुट द्वारा निर्दिष्ट संख्या नहीं है तो NaN देता है फ्लोट (डबल) के रूप में प्रतिनिधित्व योग्य?किसी दिए गए संकेत, मंटिसा और एक्सपोनेंट से एक फ्लोट (डबल) बनाने के लिए मैक्रो या फ़ंक्शन?

+0

मुझे किसी भी मानक मैक्रो या फ़ंक्शन के बारे में पता नहीं है, लेकिन इसे बनाना बहुत आसान होगा। उदाहरण के लिए, यदि आपका मंथिसा एक हस्ताक्षरित पूर्णांक है, तो इसे पाउ (बेस, एक्सपोनेंट) द्वारा गुणा करें। –

+0

किसी भी गणित ऑपरेशन को परिणाम बदलने का संदेह है, इसलिए परिणाम का बाइनरी प्रतिनिधित्व दिए गए घटकों के समान नहीं होगा। – mbaitoff

उत्तर

12

जो फ़ंक्शन आप खोज रहे हैं वह ldexp है।

+2

+1 http://en.cppreference.com/w/cpp/numeric/math/ldexp – 111111

+1

ध्यान दें कि ldexp (1.0,1024) inf देता है, और ldexp (1.0, -1075) 0.0 और ldexp (3.0, -1075) एलडीएक्सपी (4.0, -1075) के ऊपरी भाग में होगा ... वे प्रतिनिधित्व योग्य नहीं हैं (बिल्कुल) लेकिन आपको NaN नहीं मिलेगा। –