बिटवाइज ऑपरेटरों का उपयोग करके किसी संख्या को 2 से गुणा किया जा सकता है। यह लेफ्ट शिफ्ट ऑपरेटर का उपयोग करके और 1 द्वारा छोड़े गए बिट्स को शिफ्ट करके किया जाता है। इसके परिणामस्वरूप पिछली संख्या दोगुनी हो जाती है। एक प्रोग्राम जो बिटवाइज़ ऑपरेटरों का उपयोग करके किसी संख्या के 2 से गुणा को प्रदर्शित करता है, निम्नानुसार दिया गया है।
आप बिटवाइज़ से कैसे गुणा करते हैं?
N के घात से 2 के किसी भी मान से गुणा करने के लिए (अर्थात 2^N) बिट्स को N बार बाईं ओर शिफ्ट करें बिट्स को दाईं ओर शिफ्ट करने के लिए। बिट्स पूरे 1 या 0 हैं - आप एक बिट के एक हिस्से से शिफ्ट नहीं हो सकते हैं, इसलिए यदि आप जिस संख्या से गुणा कर रहे हैं, वह N के पूरे मान का कारक नहीं है।
क्या बिटवाइज़ गुणा तेज़ है?
बिट-शिफ्टिंग अभी भी तेज है, लेकिन नॉन-पावर-ऑफ-टू mul/div के लिए जब तक आप अपनी सभी शिफ्ट्स करते हैं और परिणाम जोड़ते हैं तब तक यह फिर से धीमा हो जाता है।
तेज़ गुणा या भाग क्या है?
गुणा भाग से तेज है। विश्वविद्यालय में मुझे सिखाया गया था कि भाग गुणा के छह गुना लेता है। वास्तविक समय वास्तुकला पर निर्भर है लेकिन सामान्य रूप से गुणा कभी भी धीमा या विभाजन जितना धीमा नहीं होगा।
क्या बिटशिफ्टिंग गुणा से तेज है?
यदि आप 2 की शक्ति का उपयोग कर रहे हैं, तो अधिकांश पर, शायद सभी सीपीयू पर, बाएं और दाएं बिट्स को स्थानांतरित करना गुणा और भाग संचालन की तुलना में तेज है। हालांकि, यह कुछ पाठकों और कुछ एल्गोरिदम के लिए कोड की स्पष्टता को कम कर सकता है।