एक पूर्णांक n दिया गया है जो ऋणात्मक नहीं है। लक्ष्य n के बिट्स को रिवर्स करना और ऐसा करने से परिणामी संख्या की रिपोर्ट करना है। बिट्स को रिवर्स करते समय, पूर्णांक के वास्तविक बाइनरी रूप का उपयोग किया जाता है; कोई अग्रणी 0s ध्यान में नहीं लिए जाते।
आइए इसके लिए विभिन्न इनपुट आउटपुट परिदृश्य देखें
इनपुट - 13
आउटपुट - दी गई संख्या के वास्तविक बिट्स को रिवर्स करें 11
(13)10 = (1101)2. बिट्स को रिवर्स करने के बाद, हमें मिलता है: (1011)2 = (11)10.
व्याख्या - इनपुट संख्या से बाइनरी बिट्स प्राप्त किए जाते हैं जिन्हें फिर रिवर्स किया जाता है और अंत में दशमलव प्रारूप में परिवर्तित किया जाता है जिसे आउटपुट के रूप में वापस किया जाता है।
इनपुट - 18
आउटपुट - दी गई संख्या के वास्तविक बिट्स को रिवर्स करें 9
(18)10 = (10010)2. बिट्स को रिवर्स करने के बाद, हमें मिलता है: (1001)2 = (9)10.
व्याख्या - इनपुट संख्या से बाइनरी बिट्स प्राप्त किए जाते हैं जिन्हें फिर रिवर्स किया जाता है और अंत में दशमलव प्रारूप में परिवर्तित किया जाता है जिसे आउटपुट के रूप में वापस किया जाता है।
नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण इस प्रकार है
मुख्य विधि के अंदर
संख्या को इनपुट के रूप में लिया जाता है और विधि reverseBinaryBits(int input) में पास किया जाता है
विधि reverseBinaryBits(int input) के अंदर
रिवर्स बिट्स को संग्रहीत करने के लिए एक वेरिएबल rev_input प्रारंभ किया जाता है
ब्रेकिंग पॉइंट (input > 0) के साथ एक लूप दोहराया जाता है (हम दाईं ओर से पार कर रहे हैं)
बाइनरी प्रतिनिधित्व में एक-एक करके बिट्स को पुनः प्राप्त करने के लिए बिटवाइज़ राइट शिफ्ट ऑपरेशन का उपयोग किया जाता है, और उन्हें rev में संचित करने के लिए बिटवाइज़ लेफ्ट शिफ्ट ऑपरेशन का उपयोग किया जाता है।
उदाहरण
class TutorialsPoint{ public static int reverseBinaryBits(int input){ int rev_input = 0; while (input > 0){ rev_input <<= 1; if ((int) (input & 1) == 1){ rev_input ^= 1; } input >>= 1; } return rev_input; } public static void main(String[] args){ int input = 13; System.out.println("Reverse actual bits of the given number"); System.out.println(reverseBinaryBits(input)); } }आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा
Reverse actual bits of the given number 11