Actualmente estoy tratando de aprender cómo funcionan los sumadores binarios, pero no entiendo para qué sirve un "carry in". ¿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 "carry in". ¿Cuál es el propósito de un "carry in"?
Es importante entender que hay una diferencia entre un sumador medio 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 primaria 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 necesitas más bits, tendrás que combinar algunos sumadores. Aquí es donde entran en juego los sumadores completos. El sumador menos significativo es un sumador medio, y cada sumador más significativo será un sumador que tomará el Carry
del sumador 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 sin vergüenza de Wikipedia)
Si Carry in
es 0
, el comportamiento de un sumador completo es idéntico a un medio sumador.
Sin embargo, si Carry in
es 1
, el comportamiento de Sum
se invierte y el comportamiento de Carry out
cambia a un OR. Siempre que cualquiera de las entradas sea 1, Carry out
es 1.
Carry in
para convertir un sumador básico de 2 bits en un contador de múltiples bits. Ese es el propósito de Carry in
.
Además de lo que dicen los que respondieron anteriormente, Carry también puede significar una entrada proveniente del registro de bandera que permite vincular una suma en una ALU a la siguiente. Al vincular quiero decir que, si la arquitectura de su computadora tiene una ALU con un tamaño de palabra de 8 bits y usted 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 la Procesador para continuar la suma del anterior. Esto permite que dos sumas de 8 bits se conviertan en una suma de dos pasos de 16 bits.
El propósito del "carry" en es aceptar el "carry" del anterior. Carry funciona igual que la aritmética normal.
Lea otras preguntas en las etiquetas adder