কম্পিউটার টিউটোরিয়াল

জাভাতে দেওয়া সংখ্যার প্রকৃত বিট রিভার্স করা

একটি ঋণাত্মক নন-নেগেটিভ পূর্ণসংখ্যা n দেওয়া আছে। লক্ষ্য হল n-এর বিটগুলো রিভার্স করে ফলাফল সংখ্যাটি রিপোর্ট করা। বিট রিভার্স করার সময় পূর্ণসংখ্যার প্রকৃত বাইনারি রূপ ব্যবহার করা হয়; কোনো লিডিং ০ বিবেচনা করা হয় না।

বিভিন্ন ইনপুট-আউটপুট পরিস্থিতি

উদাহরণ ১

ইনপুট: 13

আউটপুট: দেওয়া সংখ্যার প্রকৃত বিট রিভার্স 11

(13)₁₀ = (1101)₂. বিটগুলো রিভার্স করার পর: (1011)₂ = (11)₁₀.

ব্যাখ্যা: ইনপুট নম্বর থেকে বাইনারি বিটগুলো বের করা হয়, সেগুলো রিভার্স করা হয় এবংสุดে ডেসিমাল ফরম্যাটে কনভার্ট করে আউটপুট হিসেবে ফেরত দেওয়া হয়।

উদাহরণ ২

ইনপুট: 18

আউটপুট: দেওয়া সংখ্যার প্রকৃত বিট রিভার্স 9

(18)₁₀ = (10010)₂. বিটগুলো রিভার্স করার পর: (1001)₂ = (9)₁₀.

ব্যাখ্যা: ইনপুট নম্বর থেকে বাইনারি বিটগুলো বের করা হয়, সেগুলো রিভার্স করা হয় এবংสุดে ডেসিমাল ফরম্যাটে কনভার্ট করে আউটপুট হিসেবে ফেরত দেওয়া হয়।

প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • main মেথডের ভিতরে:
    • সংখ্যা ইনপুট নেওয়া হয় এবং reverseBinaryBits(int input) মেথডে পাস করা হয়।
  • reverseBinaryBits(int input) মেথডের ভিতরে:
    • rev_input ভেরিয়েবল রিভার্সড বিট সংরক্ষণের জন্য ইনিশিয়ালাইজ করা হয়।
    • (input > 0) ব্রেকিং পয়েন্টসহ একটি লুপ ইটারেট করা হয় (ডানদিক থেকে ট্রাভার্স করছি)।
    • লুপের ভিতরে:
      • বাইটওয়াইজ রাইট শিফট অপারেশন ব্যবহার করে n-এর বাইনারি রিপ্রেজেন্টেশন থেকে এক-এক করে বিট বের করা হয়।
      • বাইটওয়াইজ লেফট শিফট অপারেশন ব্যবহার করে সেগুলো 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
  1. জাভাতে স্ট্রিং রিভার্স করার সবচেয়ে সহজ উপায়

  2. জাভাতে JPasswordField-এ ডিজিটের সংখ্যা সীমাবদ্ধ করা

  3. জাভাতে দেওয়া ক্যারেক্টার নম্বর/লেটার কিনা চেক করা

  4. জাভাতে সংখ্যা গণনার প্রোগ্রাম কীভাবে বাস্তবায়ন করবেন?