प्राप्त करने के लिए मैं जानना चाहता हूं कि बिट्सफ़िफ्ट या बिटवाई ऑपरेटरों का उपयोग करके किसी अन्य पूर्णांक (दोनों पॉजिटिव) के साथ पूर्णांक को विभाजित करके शेष को कैसे प्राप्त किया जाए। /
ऑपरेटर या %
ऑपरेटर का उपयोग नहीं किया जाना चाहिए।बिट्सफ़िफ्ट शेष
उदाहरण के लिए, शेष प्राप्त करने के लिए जब divisor 2^k
रूप का है, तो निम्न ऑपरेशन शेष उत्पन्न करता है।
m = Remainder
n = The number
d = The divisor
m = n & (d - 1)
हालांकि इस पद्धति का ही काम करता है जब d
रूप 2^k
की है। मैं 2
की गैर-शक्तियों के लिए एक समान विधि जानना चाहता हूं। मैं वर्तमान में programming challenges
से एक समस्या पर काम कर रहा हूँ और इस तरह के एक विधि रोजगार कम करने के लिए प्रोग्राम निष्पादन समय
क्या यह तथ्य नहीं होगा कि बिट प्रतिनिधित्व केवल आधार -2 में ही सीमित है? मूल्य 43/7 पर विचार करें - मूल्य वास्तव में 6.142857 है ...। 2 से अधिक आधार में मूल्य के लिए आपने किस सामान्य दृष्टिकोण पर विचार किया है? – Makoto
कोई सामान्य विधि नहीं है। यदि आप divisor को जानते हैं, तो आप विभाजन को एक गुणा और कुछ बदलावों और जोड़ों/घटाव के साथ प्रतिस्थापित कर सकते हैं। इसके बारे में किसी भी सक्षम सी संकलक से पूछें, और यह आपको किसी भी संकलन समय निरंतर के लिए जादू मान देगा। –
जब तक उत्तर में केवल 1 बिट्सफ़िफ़्ट स्टेटमेंट शामिल नहीं होता है, तो मैं शर्त लगाता हूं कि आप जावा मॉड ऑपरेटर को हरा नहीं देते हैं। – goat