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

পাইথনে ফ্লোটিং পয়েন্টকে বাইনারি কনভার্ট করা


অ্যালগরিদম

  1. পূর্ণসংখ্যা অংশ: ২ দিয়ে বারবার ভাগ করে ভাগশেষ সংগ্রহ → উল্টো ক্রমে পড়লে বাইনারি।
  2. ভগ্নাংশ অংশ: ২ দিয়ে বারবার গুণ করে পূর্ণসংখ্যা অংশ সংগ্রহ → ক্রম대로 পড়লে বাইনারি।
  3. দুটি অংশ একসাথে জোড়া দিতে দশমিক বিন্দু দিয়ে।

উদাহরণ: ২২.৬২৫

  • ২২ → বাইনারি: ১০১১০
  • ০.৬২৫ → ০.৬২৫×২=১.২৫ → ১; ০.২৫×২=০.৫ → ০; ০.৫×২=১.০ → ১ → ০.১০১
  • ফলাফল: ১০১১০.১০১

উদাহরণ কোড (সংশোধিত)


def decimal_converter(num):
    while num > 1:
        num /= 10
    return num

def float_to_binary(number, places=3):
    whole_str, dec_str = str(number).split(".")
    whole = int(whole_str)
    dec = int(dec_str)
    
    # পূর্ণসংখ্যা অংশ -> বাইনারি
    res = bin(whole).lstrip("0b") + "."
    
    # ভগ্নাংশ অংশ -> বাইনারি
    for _ in range(places):
        dec = decimal_converter(dec) * 2  # ৮ এর বদলে ২
        whole_part, dec_str = str(dec).split(".")
        dec = int(dec_str)
        res += whole_part
    
    return res

# ড্রাইভার
n = input("Enter floating point value: ")
p = int(input("Enter the number of decimal places: "))
print(float_to_binary(n, places=p))

নমুনা আউটপুট

Enter floating point value: 2.34
Enter the number of decimal places of the result: 3
10.010

দ্রষ্টব্য: মূল কোডে * 8 ছিল যা ভুল; বাইনারির জন্য * 2 হতে হবে। উপরের কোডে সংশোধন করা হয়েছে।

বিকল্প: পাইথন বিল্ট-ইন (পূর্ণসংখ্যা অংশ)


# পূর্ণসংখ্যা অংশের জন্য
bin(22)  # '0b10110'

# ভগ্নাংশ অংশের জন্য ম্যানুয়াল পদ্ধতি বা fractions.Fraction ব্যবহার করুন।
  1. পাইথন প্রোগ্রাম কিলোমিটারকে মাইলে কনভার্ট করা

  2. হেক্সাডেসিমেল স্ট্রিংকে দশমিকে রূপান্তর করার পাইথন প্রোগ্রাম

  3. পাইথন প্রোগ্রাম দিয়ে দশমিক সংখ্যাকে বাইনারি নম্বরে রূপান্তর

  4. পাইথনে ডেসিমেল থেকে বাইনারি নম্বর কনভার্ট করা