में एक संख्या को विभाजित करता है, मुझे निर्धारित करने के लिए कुछ तर्क लिखने की आवश्यकता है, यहां तक कि संख्या भी दी गई है। दो की उच्चतम शक्ति जो समान रूप से इसे विभाजित करती है। 2^एन का अधिकतम मूल्य क्या है जहां इनपुट% 2^n == 0?2 की उच्चतम शक्ति की गणना करना जो समान रूप से सी
आईई:
इनपुट -> आउटपुट
4 (0100) -> 4
8 (1000) -> 8
12 (1100) -> 4
14 (1110) -> 2
24 (11000) -> 8
etc....
यह कुछ बिटवाइज़ तर्क यह है कि बाहर काम कर सकते हैं वहाँ दिखाई देता है: जब बाइनरी में इनपुट पर देख रहे हैं, सबसे दायीं ओर एक सा समाधान प्रतीत होता है। मैं सी में यह मान कैसे निर्धारित करूं? क्या कोई और समाधान आसान हो सकता है?
धन्यवाद जोनाथन
एक्स = 24 (24^23) = 24623 24623 >> 1 = 12311 12311 + 1 = 12312 मैंने कुछ गलत गणना की थी? –
जोनाथन: '^' एक्सओआर है, इसलिए '(24^23)' 15 है। – caf
बीटीडब्ल्यू, यदि एक्स हस्ताक्षरित है तो मुझे विश्वास है कि एकमात्र एज केस जिसे विशेष हैंडलिंग की आवश्यकता है शून्य है। – caf