Hướng dẫn hàm bin() trong python

Trong lập trình Python, hàm bin() chuyển đổi và trả về chuỗi nhị phân của số nguyên đã cho. Vậy cú pháp của hàm bin(), tham số và cách sử dụng hàm bin() như thế nào? Chúng ta cùng tìm hiểu nhé.

Cú pháp hàm bin() trong Python:

bin(num)

Các tham số của hàm bin():

Hàm bin() chỉ có một tham số là num, tức số nguyên cần lấy chuỗi nhị phân. Nếu tham số không phải là số nguyên, nó phải thực thi phương thức __index__() để trả về số nguyên.

Hàm bin() trả về giá trị nào?

Hàm bin() trả về một chuỗi nhị phân tương ứng của số nguyên đã cho. Nếu không chỉ định một số nguyên sẽ tạo ra TypeError, làm nổi bật kiểu dữ liệu không được hiểu là số nguyên.

Ví dụ về hàm bin()

# Ví dụ 1: Lấy chuỗi nhị phân của số nguyên so = 10 print('Chuỗi nhị phân của ', so, 'là: ', bin(so)) # Ví dụ 2: Dùng __index__() để chuyển đối tượng So_luong sang nhị phân 
class So_luong:     hoa_hong = 5     hoa_dao = 10     hoa_sen = 15     def __index__(sl):        return sl.hoa_hong + sl.hoa_dao + sl.hoa_sen print('Chuỗi nhị phân của So_luong là: ', bin(So_luong()))

Sau khi chạy chương trình trên ta nhận được đầu ra là:

Chui nh phân ca 10 là: 0b1010 Chui nh phân ca So_luong là: 0b11110

Từ giờ, bất cứ khi nào cần lấy giá trị nhị phân của một số, đối tượng, bạn chỉ cần sử dụng hàm bin() là xong.

Đăng nhập

View Discussion

Improve Article

Save Article

  • Read
  • Discuss
  • View Discussion

    Improve Article

    Save Article

    Given two binary numbers, write a Python program to compute their sum.

    Examples:

    Input:  a = "11", b = "1"
    Output: "100"
    
    Input: a = "1101", b = "100"
    Output: 10001

    Approach:

    • Naive Approach: The idea is to start from the last characters of two strings and compute digit sum one by one. If the sum becomes more than 1, then store carry for the next digits.
    • Using inbuilt function: Calculate the result by using the inbuilt bin() and int() function.

    Method 1: Naive Approach: 

    The idea is to start from the last characters of two strings and compute digit sum one by one. If the sum becomes more than 1, then store carry for the next digits.

    Python3

    a = "1101"

    b = "100"

    max_len = max(len(a), len(b))

    a = a.zfill(max_len)

    b = b.zfill(max_len)

    result = ''

    carry = 0

    for i in range(max_len - 1, -1, -1):

        r = carry

        r += 1 if a[i] == '1' else 0

        r += 1 if b[i] == '1' else 0

        result = ('1' if r % 2 == 1 else '0') + result

        carry = 0 if r < 2 else 1

    if carry != 0:

        result = '1' + result

    print(result.zfill(max_len))

    Output:

    10001

    Method 2: Using inbuilt functions:

    We will first convert the binary string to a decimal using int() function in python. The int() function in Python and Python3 converts a number in the given base to decimal. Then we will add it and then again convert it into a binary number using bin() function.

    Example 1:

    Python3

    a = "1101"

    b = "100"

    sum = bin(int(a, 2) + int(b, 2))

    print(sum[2:])

    Example 2:

    Python3

    if __name__ == "__main__" :

        a = "1101"

        b = "100"

        binary_sum = lambda a,b : bin(int(a, 2) + int(b, 2))

        print(binary_sum(a,b)[2:])

    Method: Using “add” operator 

    Python3

    from operator import*

    num1="1101"

    num2="100"

    print(bin(add(int(num1,2),int(num2,2))))

    Output 

    0b10001