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