/Hàm bin – Built-in Functions – Python

Hàm bin – Built-in Functions – Python

Hàm bin là một hàm trong các Built-in Functions của ngôn ngữ lập trình Python được sử dụng để chuyển đổi một số nguyên thành một chuỗi nhị phân.

Trong đó, chuỗi nhị phân là một chuỗi gồm các ký tự chỉ chứa hai ký tự là “0” và “1”. Chuỗi này được sử dụng để biểu diễn các giá trị số học trong hệ thống nhị phân, một trong những hệ thống số quan trọng trong lĩnh vực máy tính và lập trình.

Hệ thống nhị phân sử dụng cơ số 2, nghĩa là chỉ có hai ký tự để biểu diễn các giá trị: 0 và 1. Các giá trị trong chuỗi nhị phân biểu diễn các bít (bits), với mỗi ký tự “0” hoặc “1” tương ứng với một bit.

Ví dụ, chuỗi nhị phân ‘1010’ biểu diễn số 10 trong hệ thống nhị phân. Cách đọc chuỗi nhị phân này là:

1010 (binary) = 1*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 8 + 0 + 2 + 0 = 10 (decimal)

Chuỗi nhị phân thường được sử dụng để biểu diễn dữ liệu trong máy tính, bởi vì mọi thông tin trong máy tính đều được lưu trữ và xử lý dưới dạng các bit (0 và 1).

1. Cú pháp hàm bin

Cú pháp:

bin(x)

Tham số:

  • x: Đây là số nguyên mà bạn muốn chuyển đổi thành chuỗi nhị phân. Nó có thể là số nguyên (int) hoặc một đối tượng có thể chuyển đổi thành số nguyên.

Trả về:

  • Hàm bin trả về một chuỗi nhị phân có dạng ‘0b…’ (0b là tiền tố cho biết đây là một chuỗi nhị phân).

Phiên bản Python:

  • Hàm bin đã được hỗ trợ từ Python 2.0 trở đi và vẫn được hỗ trợ trong Python 3.x, bao gồm các phiên bản Python 3.x (3.0, 3.1, 3.2, và các phiên bản sau này).

Chú ý:

Trong Python, khi bạn thấy một số nhị phân, ví dụ: 0b1010, tiền tố “0b” cho biết rằng đây là một số nhị phân. “0b” đại diện cho binary (nhị phân).

  • “0b” là một cách để nhận diện và biểu thị rằng số được đặt trong hệ thống nhị phân (binary).
  • Khi bạn thấy “0b” ở đầu một chuỗi số, Python hiểu rằng đây là một số nhị phân và sẽ xử lý nó dựa trên hệ thống nhị phân (base 2).

Ví dụ:

  • 0b1010 là số nhị phân biểu diễn số thập phân 10.
  • 0b1101 là số nhị phân biểu diễn số thập phân 13.

Khi bạn muốn chuyển đổi một số thập phân thành nhị phân, hoặc ngược lại, Python cho phép bạn sử dụng “0b” để chỉ ra cơ số mà bạn đang làm việc. Điều này giúp phân biệt giữa các hệ cơ số khác nhau khi làm việc với kiểu dữ liệu số nguyên.

Hàm bin – Built-in Functions – Python

2. Các ví dụ sử dụng

Dưới đây là một số ví dụ về cách thực hiện và sử dụng hàm bin trong ngôn ngữ lập trình Python:

2.1. Chuyển đổi số nguyên thành chuỗi nhị phân

num = 42
binary_num = bin(num)
print(binary_num)  # Output: '0b101010'

Giải thích:

  • num được gán giá trị 42.
  • Hàm bin được sử dụng để chuyển đổi num thành chuỗi nhị phân.
  • Kết quả được in ra là chuỗi nhị phân của số 42.

2.2. Chuyển đổi số thập phân âm thành chuỗi nhị phân

negative_num = -10
binary_negative_num = bin(negative_num)
print(binary_negative_num)  # Output: '-0b1010'

Giải thích:

  • negative_num được gán giá trị -10.
  • Hàm bin cũng có thể chuyển đổi số thập phân âm thành chuỗi nhị phân.
  • Kết quả được in ra là chuỗi nhị phân của số -10.

2.3. Chuyển đổi từ chuỗi nhị phân thành số nguyên

binary_string = '0b10101'
decimal_num = int(binary_string, 2)
print(decimal_num)  # Output: 21

Giải thích:

  • binary_string là chuỗi nhị phân ‘0b10101’.
  • Hàm int với tham số thứ hai là 2 để chuyển đổi chuỗi nhị phân thành kiểu dữ liệu số nguyên.
  • Kết quả được in ra là số nguyên tương ứng với chuỗi nhị phân.

2.4. Sử dụng slicing để loại bỏ tiền tố ‘0b’ của chuỗi nhị phân

num = 7
binary_num = bin(num)[2:]
print(binary_num)  # Output: '111'

Giải thích:

  • binary_num là chuỗi nhị phân tương ứng với số 7 (‘0b111’).
  • Sử dụng slicing để loại bỏ hai ký tự đầu (‘0b’).
  • Kết quả được in ra là chuỗi nhị phân không chứa tiền tố ‘0b’.

2.5. Cộng hai số nhị phân

# Số nhị phân thứ nhất: 0b1010 (tương đương 10 thập phân)
# Số nhị phân thứ hai: 0b1101 (tương đương 13 thập phân)
binary_num1 = '0b1010'
binary_num2 = '0b1101'

# Chuyển đổi chuỗi nhị phân thành số nguyên và cộng
sum_binary = int(binary_num1, 2) + int(binary_num2, 2)

# Chuyển đổi kết quả thành chuỗi nhị phân
sum_binary_str = bin(sum_binary)

print(sum_binary_str)  # Output: '0b11011' (tương đương 27 thập phân)

Giải thích:

  • Chúng ta chuyển đổi hai chuỗi nhị phân thành số nguyên, thực hiện phép cộng, và sau đó chuyển đổi kết quả thành chuỗi nhị phân.

2.6. Trừ hai số nhị phân

# Số nhị phân thứ nhất: 0b1010 (tương đương 10 thập phân)
# Số nhị phân thứ hai: 0b1101 (tương đương 13 thập phân)
binary_num1 = '0b1010'
binary_num2 = '0b1101'

# Chuyển đổi chuỗi nhị phân thành số nguyên và trừ
difference_binary = int(binary_num1, 2) - int(binary_num2, 2)

# Chuyển đổi kết quả thành chuỗi nhị phân
difference_binary_str = bin(difference_binary)

print(difference_binary_str)  # Output: '-0b1011' (tương đương -3 thập phân)

Giải thích:

  • Chúng ta chuyển đổi hai chuỗi nhị phân thành số nguyên, thực hiện phép trừ, và sau đó chuyển đổi kết quả thành chuỗi nhị phân. Trong trường hợp này, kết quả là số âm, được biểu diễn bởi ký tự ‘-‘ ở đầu chuỗi nhị phân.