このプログラムでは、2 進数を与えて加算する必要があります。 n 個の 2 進数があり、出力として 2 進数を取得するには、それらをすべて加算する必要があります。
これを行うには、バイナリ加算ロジックを使用して、1 から N までのすべての項目を 1 つずつ加算して結果を取得します。
Input: "1011", "10", "1001" Output: 10110
より簡単な方法は、バイナリ文字列を同等の 10 進数に変換し、それらを加算して再度バイナリに変換することです。ここでは手動で追加していきます。 ヘルパー関数を使用して 2 つのバイナリ文字列を追加します。この関数は、n 個の異なるバイナリ文字列に対して n-1 回使用されます。
#include<iostream> using namespace std; string add(string b1, string b2) { string res = ""; int s = 0; int i = b1.length() - 1, j = b2.length() - 1; while (i >= 0 || j >= 0 || s == 1) { if(i >= 0) { s += b1[i] - '0'; } else { s += 0; } if(j >= 0) { s += b2[j] - '0'; } else { s += 0; } res = char(s % 2 + '0') + res; s /= 2; i--; j--; } return res; } string addbinary(string a[], int n) { string res = ""; for (int i = 0; i < n; i++) { res = add(res, a[i]); } return res; } int main() { string arr[] = { "1011", "10", "1001" }; int n = sizeof(arr) / sizeof(arr[0]); cout << addbinary(arr, n) << endl; }
以上がn 個のバイナリ文字列を追加しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。