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

পাইথনে বাইনারি ↔ ডেসিমেল কনভারশন


বাইনারি থেকে ডেসিমেল

অ্যালগরিদম: প্রতিটি বিটকে ২-এর ঘাতের সাথে গুণ করে যোগ।


def binary_to_decimal(binary_str):
    decimal = 0
    n = len(binary_str)
    for i, bit in enumerate(binary_str):
        decimal += int(bit) * (2 ** (n - 1 - i))
    return decimal

# টেস্ট
print(binary_to_decimal("1111"))  # 15
print(binary_to_decimal("1010"))  # 10

ডেসিমেল থেকে বাইনারি

অ্যালগরিদম: ২ দিয়ে বারবার ভাগ করে ভাগশেষ সংগ্রহ, তারপর উল্টো ক্রমে পড়া।


def decimal_to_binary(n):
    if n == 0:
        return "0"
    bits = []
    while n > 0:
        bits.append(str(n % 2))
        n //= 2
    return ''.join(reversed(bits))

# টেস্ট
print(decimal_to_binary(15))  # 1111
print(decimal_to_binary(10))  # 1010

ইন্টারঅ্যাক্টিভ মেনু-ভিত্তিক প্রোগ্রাম


def main():
    print("*****************************************************")
    print(" DECIMAL TO BINARY AND BINARY TO DECIMAL CONVERSION")
    print("*****************************************************")
    print(" For Decimal to Binary... Press 1.")
    print(" For Binary to Decimal... Press 2")
    print("*****************************************************")
    
    choice = int(input("Enter your choice: "))
    
    if choice == 1:
        dec = int(input("Enter decimal to be converted: "))
        print(f"The binary of the given number is {decimal_to_binary(dec)}.")
    elif choice == 2:
        binary = input("Enter binary to be converted: ")
        print(f"The decimal of the given binary is {binary_to_decimal(binary)}.")
    else:
        print("Invalid choice!")
    
    print("******************************************************")

if __name__ == "__main__":
    main()

পাইথন বিল্ট-ইন ফাংশন (দ্রুত পদ্ধতি)


# ডেসিমেল -> বাইনারি
bin(15)        # '0b1111'
bin(15)[2:]    # '1111' (প্রিফিক্স বাদ)
format(15, 'b') # '1111'

# বাইনারি -> ডেসিমেল
int('1111', 2)  # 15
int('1010', 2)  # 10

# অন্যান্য বেস
oct(15)         # '0o17'
hex(15)         # '0xf'
int('17', 8)    # 15
int('f', 16)    # 15

ফ্লোটিং পয়েন্ট কনভারশন (এডভান্সড)

ফ্লোটের জন্য IEEE 754 রিপ্রেজেন্টেশন ব্যবহার করুন:


import struct

def float_to_binary32(f):
    """32-বিট IEEE 754 বাইনারি স্ট্রিং"""
    bits = struct.unpack('>I', struct.pack('>f', f))[0]
    return format(bits, '032b')

def binary32_to_float(b):
    """32-বিট বাইনারি স্ট্রিং -> ফ্লোট"""
    bits = int(b, 2)
    return struct.unpack('>f', struct.pack('>I', bits))[0]

print(float_to_binary32(3.14))   # 01000000010010001111010111000011
print(binary32_to_float('01000000010010001111010111000011'))  # 3.140000104904175
  1. পাইথনে পোস্টঅর্ডার ও ইনঅর্ডার থেকে বাইনারি ট্রি তৈরি করুন

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

  3. পাইথনে ডেসিমাল ফাংশনসমূহ

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