में 128-बिट डिवीजन आंतरिक आंतरिक मैं दृश्य सी ++ में वास्तव में कोई 128-बिट डिवीजन आंतरिक कार्य नहीं कर रहा हूं?विजुअल सी ++
एक 64x64 = 128 बिट गुणात्मक आंतरिक फ़ंक्शन है जिसे _umul128() कहा जाता है, जो अच्छी तरह से एमयूएल x64 असेंबलर निर्देश से मेल खाता है।
स्वाभाविक रूप से, मुझे लगता है कि 128/64 = 64 बिट डिवीजन आंतरिक भी होगा (डीआईवी निर्देश मॉडलिंग), लेकिन मेरे विस्मय के लिए न तो दृश्य सी ++ और न ही इंटेल सी ++ में ऐसा प्रतीत होता है, कम से कम यह सूचीबद्ध नहीं है intrin.h।
क्या कोई इसकी पुष्टि कर सकता है? मैंने कंपाइलर निष्पादन योग्य फ़ाइलों में फ़ंक्शन नामों के लिए grep'ing करने का प्रयास किया, लेकिन पहली जगह _umul128 नहीं मिला, इसलिए मुझे लगता है कि मैंने गलत स्थान देखा है।
अद्यतन: कम से कम मुझे अब दृश्य सी ++ 2010 के c1.dll में "umul128" (अग्रणी अंडरस्कोर के बिना) पैटर्न मिला है। अन्य सभी अंतर्ज्ञान इसके चारों ओर सूचीबद्ध हैं, लेकिन दुर्भाग्यवश कोई "udiv128" या पसंद नहीं है :(तो ऐसा लगता है कि वे वास्तव में इसे लागू करने के लिए "भूल गए" हैं।
स्पष्टीकरण के लिए: मैं केवल 128 बिट डेटा प्रकार की तलाश नहीं कर रहा हूं, लेकिन 128 बिट स्केलर int को 64-बिट द्वारा विभाजित करने का एक तरीका है C++ int। या तो कोई आंतरिक समारोह या देशी 128 बिट पूर्णांक समर्थन मेरी समस्या का समाधान होगा।
एडी टी: जवाब नहीं है, वहाँ कोई _udiv128 दृश्य स्टूडियो 2010 या 2012
यह सीआरटी का हिस्सा नहीं है। यह एक आंतरिक है, प्रोसेसर के साथ मुफ्त में आता है। लेकिन केवल 64-बिट मोड में। जब तक आपको 128-बिट प्रोसेसर नहीं मिलता है तब तक div के लिए कोई फ्रीबी नहीं। पाउ (2, 128) की हास्यास्पद रूप से विशाल श्रेणी को देखते हुए, आपको मनमाना सटीक पुस्तकालय की तलाश करनी चाहिए। आसपास के बहुत सारे। –
@ ट्रीमोन्की: __int18 वीएस द्वारा समर्थित नहीं है, http://stackoverflow.com/questions/6759592/how-to-enable-int128-on-visual-studio – cxxl
@ हंस: क्षमा करें, मुझे समझ में नहीं आता है। यह सिर्फ एक आंतरिक नहीं है, यहां तक कि 64 बिट मोड में भी नहीं। और मुझे इसकी आवश्यकता है * लिखना * एक मनमाना सटीक lib :) – cxxl