Red de conocimiento informático - Material del sitio web - Cómo utilizar operaciones bit a bit para implementar la suma y resta de enteros

Cómo utilizar operaciones bit a bit para implementar la suma y resta de enteros

Cómo utilizar operaciones de bits para implementar la suma y resta de números enteros

La idea de las operaciones de bits se puede aplicar a muchos lugares. La siguiente es una breve introducción a las cuatro operaciones aritméticas de números enteros que utilizan operaciones de bits.

1. Suma de enteros

[cpp] Ver la copia pura Ver el fragmento de código en CÓDIGO derivado de mi fragmento de código

int Add(int a, int b)

{

for(int i = 1; i; i lt; lt; = 1)

if (b amp; i)

for(int j = i; j; j lt; lt; = 1)

if(a amp; j) a amp; = ~j; else {a |= j; break;}

Devuelve a;

}

Mi proceso de pensamiento es principalmente así: uso un 1 para realizar operaciones de bits Cuando , el 1 consecutivo más a la izquierda (comenzando desde el bit 0 hacia la izquierda) se convierte en 0, y el 0 más bajo en a se convierte en 1.

Sumar 1 a diferentes bits cuenta desde el bit correspondiente hacia la izquierda, mientras que el lado derecho permanece sin cambios.

Aquí hay otra idea en línea, creo que esta es mejor:

[cpp] Ver copia pura para ver el fragmento de código deducido de mi fragmento de código en CODE

int Add(int a, int b)

{

if(b == 0) return a; //no finaliza la operación sin redondear

int suma, llevar;

suma = a ^ b; //termina el primer paso de la suma sin redondear

llevar=(a amp; b) lt; finalice el segundo paso de redondear y desplazar hacia la izquierda

return Add(sum, carry // hacer recursividad, agregar

}