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 Show 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ânPhươ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á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ânChươ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
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 địnhChươ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<2: carry = 0 else: carry = 1 if carry!=0: addRes = '1' + addRes print(addRes) Đây là lần chạy mẫu của nó, 11101 là số nhị phân đầu tiên và 11111 là số nhị phân thứ hai Lưu ý - Phương thức zfill() dùng để thêm số không (0) vào đầu chuỗi. Độ dài của nó được chỉ định thông qua đối số của nó Lưu ý - Hàm max() trả về số lượng tối đa từ các số được cung cấp làm đối số của nó Phiên bản sửa đổi của chương trình trước đóChương trình này lại là phiên bản sửa đổi của chương trình trước đó. Trong chương trình này, chúng tôi đã rút ngắn mã logic để tạo chương trình trông nhỏ hơn chương trình trước một chút |