コンピュータは、汎用コンピューティングは、CPUを達成するためにALU内部のCPUを意味しています
ウィキ説明
算術論理ユニット(英語:算術論理ユニット、ALUが)である中央プロセッサ実行ユニット、全て中央処理装置のコアコンポーネントのANDゲートとORゲートの演算装置、主な機能は、バイナリで算術演算、(整数除算を含まない)の減算などによって。基本的に、すべての近代的なCPUアーキテクチャ、バイナリである補数表現する形式。
ここではいくつかの質問があります:
算術加算器を使用することなく実現1
2.減算を実現するために算術演算を使用しないでください。
3.保存乗算と除算は、乗算を使用せずに実装しました
あなたは答えを知っている場合は、必要Kanlaダウンは逆に、ありません続きを読みます
前記第一の加算器
コードの実装
{(INT V1、V2 INT)INT _ADD INT nRet = 0。 やる{ nRet = v1とv2の^; V2 =(V1およびV2)<< 1。 V1 = nRet; }一方(V2)。 nRetを返します。 }
手動テスト
5 + 5 =?
101 101
XOR 101と101
------------------------------------------
000 101
0000 0000
XOR 1010および1010
------------------------------------------
1010 0000
結果は以下の通りである:(^ 1 * 2 1)+(^ 2 * 2 0)+(^ 3 * 2 1)= 10 +(* 0 ^ 0 2)1010の変換ビットバイナリ
減算言ったイェ
あなたは補数を知っている必要があります理由として加算と減算同じ理由で、(私は誰も反論しないべきだと思うデザインNiubiを補完)
_bitSub INT(INT A、int型B){ B = -b; {行う INT nXorResult = A ^ Bを、 B =(A&B)<< 1; // Bは、ループ手段終了と判定され = nXorResultを; // aは結果 }一方、(B)は、 返します; }
手動テスト(本来は怠け者になりたかった、実証していきません......)
1-1 (減数の符号を反転した後、さらに動作モードを使用して)
0001 0001
XOR 1111と1111
-------------------------------------
1110 0001
1110 1110
XOR 0010と0010
--------------------------------------
1100 0010
1100 1100
XOR 0100と0100
--------------------------------------
1000 0100
1000 1000
XOR 1000および1000年
--------------------------------------
0000 1000
00000 00000
XOR 10000と1 0000
--------------------------------------
10000 00000
それはあなたがたが過剰オフ4ビット・コンピューティング、ダイレクトカットを行っているので、結果はバイナリ0000で、留意すべきです
1-1 (減数の符号を反転した後、さらに動作モードを使用して)
0001 0001
XOR 0001 0001
-------------------------------------
0000 0001
0000 0000
XOR 0010 0010
-------------------------------------
0010 0000
結果:0010 2進数から10進数へは2であります
オープンは正しい証明しました
最初の質問を検討乗算を達成
小数:100 * 10 =秒あなたは答え、100 * 100それを知っている必要がありますか?100 * 100 = 10000
注意:接尾辞bは二進数を表し
バイナリ:100bは*部100b =あなたが等しいことをどのくらい知っていますか?実際には、ここで及び小数同じ理由100B * 100B = 10000B(これを介して実際に左への2つの被乗数シフトの結果であり、2 = 100 100 <<である00)
INT _mul(INT V1、unsigned int型のV2){ int型nRet = 0。 int型nLeftMove = 0; 実行{ (V2&1){場合 nRet + = V1 << nLeftMove。 } V2 = V2 >> 1。 nLeftMove ++; } 一方(V2)。 nRetを返します。 }
5×2 = 101B * 10B
第1解析0 B 1が条件を満たしていない、0でないが被乗数を移動しません
第二:分析1 0B 1は被乗数移動条件が満たされ、1であり、101B << 1B = 1010B
第三:乗数は終了、オーバー判断されました