¿Cuál es el propósito de un "carry in"?

Actualmente estoy tratando de aprender cómo funcionan los sumadores binarios, pero no entiendo para qué sirve un "acarreo". ¿Cuál es el propósito de un "carry in"?

Respuestas (3)

Es importante entender que hay una diferencia entre un medio sumador y un sumador completo.

Un medio sumador es el más simple. Tiene 2 entradas y 2 salidas. Es básicamente un XOR.

La salida principal es solo 1 si una de ambas entradas es 1, pero no si ambas son 1. Eso es Sum. La segunda salida es solo 1 si ambas entradas son 1. Eso es Carry.

Eso está bien, pero solo si estás agregando dos bits. Si necesita más bits, tendrá que combinar algunos sumadores. Aquí es donde entran en juego los sumadores completos. El sumador menos significativo es un medio sumador, y cada sumador más significativo será un sumador completo que tomará el Carrysumador anterior.

A   B   Cin     Cout    Sum
0   0   0       0       0
1   0   0       0       1
0   1   0       0       1
1   1   0       1       0
0   0   1       0       1
1   0   1       1       0
0   1   1       1       0
1   1   1       1       1

(copiado descaradamente de Wikipedia)

Si Carry ines 0, el comportamiento de un sumador completo es idéntico al de un semisumador.

Sin embargo, si Carry ines 1, el comportamiento de Sumse invierte y el comportamiento de Carry outcambia a OR. Siempre que alguna de las entradas sea 1, Carry outes 1.

Carry inse requiere para convertir un sumador básico de 2 bits en un contador de múltiples bits. Ese es el propósito de Carry in.

Con el formato de complemento a dos (-x == ~x + 1), el acarreo también se puede usar para restar (invertir el sustraendo y establecer el acarreo niega el valor que luego se puede sumar).
@ PaulA.Clayton Técnicamente eso sería un restador. Tuve la idea de que proporcionaría una sobrecarga de información para OP, hay mucha más información para compartir sobre este asunto.
Evitar volcados de información puede ser difícil para algunas personas (como yo); Su juicio es probablemente correcto.

Además de lo que dijeron quienes respondieron anteriormente, Carry también puede significar una entrada proveniente del registro de bandera que permite vincular una suma en una ALU con la siguiente. Al vincular me refiero a que, si la arquitectura de su computadora tiene una ALU con un tamaño de palabra de 8 bits y necesita hacer una suma de 16 bits, la ALU puede usar la bandera de acarreo, colocándola en su acarreo como una forma de permitir el procesador para continuar la suma del anterior. Esto permite que dos sumas de 8 bits se conviertan en una sola suma de 16 bits de dos pasos.

El propósito del "acarreo" es aceptar el "acarreo" del sumador anterior. Carry funciona igual que la aritmética normal.