[c ++] C ++文字列による2進乗算



Binary Multiplication With C String



説明

バイナリ乗算の実装は難しくありません。それは手動操作のアイデアをシミュレートします。文字列の実装が選択された理由は、文字列の移動に優れたパフォーマンスがあり、コードアプリケーションの知識が非常に基本的であるためです。参考にさせていただきます。

機能部

考えてみると、もともといくつかの機能を作っていたのですが、少し派手でした。結局、問題を解決するためにバイナリ加算関数のみが使用されました。



コードモジュール

入力:2つの符号付き2進数
出力:2つの数値の積

```cpp #include #include #include #include using namespace std string BinaryAdd(string a,string b) { string ret ret.reserve(a.size()+b.size()) int c=0,s int i=a.size()-1,j=b.size()-1 while(i>=0||j>=0||c==1) { c+=i>=0?a[i--]-'0':0 c+=j>=0?b[j--]-'0':0 s=c%2 ret.push_back(s+'0') c>>=1 } reverse(ret.begin(),ret.end()) return ret } int main() { string X,Y vector P//Partial product is loaded with a container int length1,length2 cin>>X cin>>Y char sign = '+' if((X[0]=='+'&&Y[0]=='-')||(X[0]=='-'&&Y[0]=='+')) { sign = '-' } X.erase(0,1) Y.erase(0,1)//Delete the sign bit length1 = X.length() length2 = Y.length() int i = 0 P.push_back('0') for(i = 1i <= length2i++) { string temp(X) for(int j = 1j

結果表示

画像