2016-11-16 7 views
-1

私は4ビット計算機を作ろうとしています。 入力は2つの数字と記号です。計算機は4ビットであり、数が16より大きい場合、オーバーフローが発生する可能性があります。オーバーフローを伴う4ビット計算機

example

私は+との一部を書かれていると - が、私はどのように継続する考えを持っていません。

誰かが私を助けてくれたらとても感謝しています。

string[] asignb = Console.ReadLine().Split(' '); 
int a = int.Parse(asignb[0]); 
string sign = asignb[1]; 
int b = int.Parse(asignb[2]); 

if (a > 16) { 
    a -= 16; 
} 

if (b > 16) { 
    b -= 16; 
} 

if (sign == "+") { 
    int addition = 0; 
    addition = a + b; 

    if(addition > 16) { 
     addition -= 16; 
    } 
    Console.WriteLine(addition); 

} else if(sign == "-") { 
    int subtraction = 0; 
    subtraction = a - b; 

    if (subtraction < 0) { 
     subtraction += 16; 
    } 
    Console.WriteLine(subtraction); 

} 
+1

あなたが今まで行ったことをアップロードできるならば、 –

+0

正の整数のためにモジュロを使うことができます。あなたは算術演算を行うことができます、 '2 + 23'と言うことができます。おそらく、あなたが言ったことから、コードは現在この罰金を評価し、 '25 'を返します - あなたが探している16ビット整数を得ることができるので' 25%16' –

+0

@saad suriアップロードします。思い出させていただきありがとうございます。 –

答えて

0

効率的ではありませんが、実装が簡単な方法は、繰り返し追加または削除することです。すなわち(2 * 5)=(2 + 2 + 2 + 2 + 2)となる。

整数の除算は、ゼロに達する前に減算できる回数です(オーバーフローが問題になる可能性があります)。

より効率的または徹底的な回答が必要な場合は、2進乗算/除算を調べてみてください。

関連する問題