Làm thế nào để bạn thêm nhị phân trong python?

Hàm int[] chuyển đổi chuỗi đã cho thành số nguyên có xét đến giá trị cơ sở được cung cấp, trong ví dụ sau, chúng tôi đang chuyển đổi chuỗi [là giá trị nhị phân] thành số nguyên nên chúng tôi chuyển giá trị cơ sở thành 2 [nhị phân

Khi các chuỗi được chuyển đổi thành một giá trị số nguyên thì chúng tôi sẽ thêm chúng và kết quả được chuyển đổi trở lại số nhị phân bằng cách sử dụng hàm bin[]

Trong chương trình sau, chúng ta sẽ sử dụng hai hàm có sẵn int[] và bin[] để cộng hai số nhị phân trong lập trình Python

Hàm int[] chuyển đổi một chuỗi thành một số nguyên được coi là giá trị cơ sở đã cho

Ví dụ

a = '0011'
print[int[a,2]]

đầu ra

3

Phép Cộng Hai Số Nhị Phân

Phương pháp 1. Cách tiếp cận ngây thơ

1. Khai báo các biến a và b

2. thêm số 0 vào đầu chuỗi ngắn hơn cho đến khi đến chuỗi dài hơn. Phương thức zfill[] được sử dụng để thêm các số 0 vào đầu chuỗi cho đến khi đạt đến độ dài đã chỉ định

Trong bài viết này, bạn sẽ tìm hiểu và lấy mã để cộng hai số nhị phân do người dùng nhập bằng chương trình Python. Dưới đây là danh sách các chương trình cộng số nhị phân

  • Cộng trực tiếp hai số nhị phân
  • Thêm hai số nhị phân bằng Mã dựa trên người dùng

Cách cộng hai số nhị phân?

Dưới đây là quy tắc cộng số nhị phân

1 + 0 = 1
0 + 1 = 1
0 + 0 = 0
1 + 1 = 10 [0 and carry 1]
1 + 1 + 1 = 11 [1 and carry 1]

Ví dụ

  1 1 1 0 1
+ 1 1 1 1 1
-----------
1 1 1 1 0 0

Cộng trực tiếp hai số nhị phân

Chương trình này tìm và in tổng của hai số nhị phân đã cho theo cách trực tiếp. Ở đây, cách trực tiếp có nghĩa là, chương trình này được tạo bằng cách sử dụng int[] và bin[], hàm được xác định trước của Python. Hãy cùng xem chương trình. tôi sẽ giải thích nó sau

print["Enter First Binary Number: "]
nOne = int[input[]]
print["Enter Second Binary Number: "]
nTwo = int[input[]]

nOne = str[nOne]
nTwo = str[nTwo]
iSum = int[nOne, 2] + int[nTwo, 2]
bSum = bin[iSum]

print["Result = " + bSum]

Đây là mẫu chạy của nó

Bây giờ cung cấp hai số nhị phân bất kỳ nói 1110 là số thứ nhất và 1111 là số nhị phân thứ hai. Đây là lần chạy mẫu với cùng một đầu vào

Tức là 1110 + 1111 = 11101 hoặc 0b1110 + 0b1111 = 0b11101

Lưu ý - Int[num, 2] trả về một số nguyên thập phân tương đương với số nhị phân được lưu trữ trong num. Ở đây 2 là cơ sở của số được lưu trữ trong num

Do đó, tuyên bố sau đây

iSum = int[nOne, 2] + int[nTwo, 2]

chuyển đổi nOne và nTwo thành số nguyên thập phân tương đương và thêm chúng. Kết quả cộng của nó được khởi tạo thành biến iSum. Và sử dụng phương thức bin[], chúng tôi đã chuyển đổi giá trị số nguyên thập phân thành số nhị phân tương đương của nó

Lưu ý - Hàm bin[] trả về chuỗi nhị phân tương đương của một số nguyên được truyền làm đối số của nó

Quá trình chạy khô khan của chương trình trên với đầu vào của người dùng 1110 và 1111 diễn ra như sau

  • Khi người dùng nhập hai số nhị phân này, nó sẽ được lưu lần lượt trong nOne và nTwo. Vậy nOne=1110 và nTwo=1111
  • Bây giờ sử dụng nOne = str[nOne], giá trị của nOne trở thành giá trị chuỗi. Đó là, loại nOne được thay đổi thành loại chuỗi. Điều tương tự cũng xảy ra với nTwo
  • Sau đó, sử dụng iSum = int[nOne, 2] + int[nTwo, 2]
    int[nOne, 2] + int[nTwo, 2] hoặc 14 + 15 hoặc 29 . Như đã nói, int[nOne, 2] trả về một số nguyên thập phân tương đương với giá trị được lưu trữ trong nOne
  • Cuối cùng, sử dụng bin[iSum], giá trị 29 được chuyển đổi thành chuỗi nhị phân tương đương, đó là 0b11101. 11101 là nhị phân tương đương với 29
  • Bây giờ chỉ cần in giá trị của iSum là kết quả cộng của hai số nhị phân đã nhập

Phiên bản sửa đổi của chương trình trước đó

Chương trình này là phiên bản sửa đổi của chương trình trước với một số đầu ra đẹp hơn

print[end="Enter First Binary Number: "]
nOne = int[input[]]
print[end="Enter Second Binary Number: "]
nTwo = int[input[]]

nOne = str[nOne]
nTwo = str[nTwo]
iSum = int[nOne, 2] + int[nTwo, 2]
bSum = bin[iSum]

print["\n" + nOne + " + " + nTwo + " = " + bSum[2:]]

Đây là mẫu chạy với đầu vào của người dùng, 111 là số nhị phân đầu tiên và 111 là số nhị phân thứ hai

Lưu ý - bSum[2. ] được sử dụng để in từ chỉ mục thứ 2. Nó được sử dụng để bỏ qua 0b của bSum. Đó là 0 ở vị trí thứ 0 và b ở vị trí thứ nhất

Thêm hai số nhị phân bằng mã do người dùng xác định

Chương trình này được tạo với mã hoàn chỉnh dựa trên người dùng để cộng hai số nhị phân do người dùng nhập. Bởi vì trong chương trình này, chúng tôi đã không sử dụng bất kỳ loại chức năng được xác định trước nào

print[end="Enter First Binary Number: "]
nOne = int[input[]]
print[end="Enter Second Binary Number: "]
nTwo = int[input[]]

nOne = str[nOne]
nTwo = str[nTwo]
mLen = max[len[nOne], len[nTwo]]
nOne = nOne.zfill[mLen]
nTwo = nTwo.zfill[mLen]
addRes = ""
carry = 0

for i in range[mLen - 1, -1, -1]:
    re = carry
    if nOne[i] == '1':
        re = re+1
    else:
        re = re+0
    if nTwo[i] == '1':
        re = re+1
    else:
        re = re+0
    if re%2==1:
        addRes = '1' + addRes
    else:
        addRes = '0' + addRes
    if re

Chủ Đề