Cómo implementar suma, resta, multiplicación y división en lenguaje C
Esencialmente son todas operaciones de bits. La suma se implementa de forma recursiva mediante XOR, AND y desplazamiento a la izquierda.
Supongamos que a y b son dos números binarios, entonces a+b = a^b + (a&b)<<1;?
Código de implementación típico: //versión recursiva Suma
int?Add(int?a,?int?b)
{
return?bAdd(a^b,?(a&b)< <1) ?:?a;?
}
//Versión de iteración
int?Add_iter(int?a,?int?b) p>
{
int?ans;
mientras(b)
{
ans?=?a^b ; p>
b?=?(a&b)<<1;
a?=?ans;
}
retorno?ans ; p>
}
Usando la suma y el desplazamiento, puedes simular la multiplicación, división y resta
Resta: a-b? = a+(-b)
Operación de multiplicación: en principio, todavía se calcula mediante la suma, sumando b a.
Operación de división: La operación de división es la inversa de la multiplicación. Mira cuántas b se pueden restar de a