2016-11-16 70 views
-1

我想制作一个4位计算器。 输入是2个数字和一个符号。计算器是4位的,如果数字大于16,可能会出现溢出。四位计算器溢出

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' - 你可以得到你正在寻找像这样'25%16' –

+0

@saad苏瑞我上传它的16位整数。谢谢你提醒我。 –

回答

0

那么一个效率低下但易于实施的方法是重复加或减。即(2 * 5)=(2 + 2 + 2 + 2 + 2)。

整数除法只是在达到零之前可以减去的次数(溢出可能是个问题)。

如果你想要更有效或彻底的答案,试着查找二进制乘法/除法。