Multiplicacion Binaria, alguien puede ayudarme?

Muy buenas.

Tengo un par de dudas, por ejemplo, que pasa cuando tenemos "varios" 1?

11101111
111011
__________
11101111
11101111
00000000
11101111
11101111
11101111
______________
11011100010101

                 11101111
                   111011
                __________
                 11101111
                11101111
               00000000
              11101111
             11101111
            11101111
           ______________
           11011100010101


Me sale bien hasta la 5ª cifra del resultado. En el sexto numero me sale un 1 en vez de un cero como en el ejemplo.

Mi metodo es:
1=1
1+1= 0 (mas el 1 que me llevo a la siguiente)
1+1+1= 1 (mas 1 que me llevo a la siguiente)
1+1+1+1= 0 (Y aqui viene mi duda; me llevo dos 1 a la siguiente columna, o me llevo un 10?

Y que pasa si tengo 5 unos o 6 unos?

Gracias de antebrazo!
Hola,
si recuerdo bien cuando tienes cuatro 1 te llevas cero de acarreo, resultado de que el acarreo seria 1+1=0. Si aplicas lo que te digo, sale el resultado que toca. De todas formas puedes mirar este enlace donde te explica como hacerlo de otra forma:
http://courses.cs.vt.edu/~cs1104/Buildi ... y.040.html

Edit: Si no te aclaras, haz sumas "parciales" cada vez que desplaces porque te encuentres un uno y en el siguiente desplazamiento vuelve a sumar hasta que termines, de esa forma seguro que no se te pasa ningun acarreo. Tendras que tener en cuenta que la multiplicacion de nxm bits puede dar como maximo n+m bit antes de desbordar.
Salu2.
anrusal escribió:Hola,
si recuerdo bien cuando tienes cuatro 1 te llevas cero de acarreo, resultado de que el acarreo seria 1+1=0. Si aplicas lo que te digo, sale el resultado que toca. De todas formas puedes mirar este enlace donde te explica como hacerlo de otra forma:
http://courses.cs.vt.edu/~cs1104/Buildi ... y.040.html

Edit: Si no te aclaras, haz sumas "parciales" cada vez que desplaces porque te encuentres un uno y en el siguiente desplazamiento vuelve a sumar hasta que termines, de esa forma seguro que no se te pasa ningun acarreo. Tendras que tener en cuenta que la multiplicacion de nxm bits puede dar como maximo n+m bit antes de desbordar.
Salu2.


Me que quedado igual...sera que estoy espeso.

Yo lo que hago es empezar a sumar, 1, y segun el resultado sea par o impar (teniendo en cuenta si me he llevado antes algo o no), entonces pongo el resultado, y si me llevo algo, lo coloco en la siguiente columna.

Mi problema viene cuando me llevo varios 1, por ejemplo, que pasa si son 4 1111 lo que tengo en la columna? Pongo un 0 de resultado, porque son pares, pero no se "cuanto llevarme" a la siguiente columna, si cuatro 1, o 4 en binario (100), o llevarme 10 y 10...
Te puedes llevar dos 1 a la siguiente columna, o un 1 dos columnas mas pa lla, que es lo que te va a salir cuando sumes la siguiente columna. Personalmente prefiero la primera opcion, es mas metodica y menos facil equivocarse porque no tienes que llevar el acarreo de varias columnas a la vez.
Hola, si tienes una multiplicacion de 8x8 bits lo maximo que podras tener es 16 bits, si te sale un bit 17 sera porque desborda y ese bit se descarta, al menos todos los multiplicadores reales hacen eso, otra cosa es que no te impongan esa condicion. Contestando a tu pregunta, prueba ha hacerlo por sumas parciales :

11101111
111011
__________
11101111
11101111 -> 101100101
00000000 -> 101100101
11101111 -> 101001000101
11101111 -> 1100100110101
11101111 -> 11011100010101
______________
11011100010101
Lo de ver el numero de unos que tienes simultaneamente y el el acarreo te puede liar. Espero haberte sido de ayuda y perdona, pero lo del acarreo no lo recuerdo y con ese metodo puedes hacer cualquier multiplicacion independientemente del numero de unos que tengas a la vez.
Salu2.
eduy1985 escribió:
anrusal escribió:Hola,
si recuerdo bien cuando tienes cuatro 1 te llevas cero de acarreo, resultado de que el acarreo seria 1+1=0. Si aplicas lo que te digo, sale el resultado que toca. De todas formas puedes mirar este enlace donde te explica como hacerlo de otra forma:
http://courses.cs.vt.edu/~cs1104/Buildi ... y.040.html

Edit: Si no te aclaras, haz sumas "parciales" cada vez que desplaces porque te encuentres un uno y en el siguiente desplazamiento vuelve a sumar hasta que termines, de esa forma seguro que no se te pasa ningun acarreo. Tendras que tener en cuenta que la multiplicacion de nxm bits puede dar como maximo n+m bit antes de desbordar.
Salu2.


Me que quedado igual...sera que estoy espeso.

Yo lo que hago es empezar a sumar, 1, y segun el resultado sea par o impar (teniendo en cuenta si me he llevado antes algo o no), entonces pongo el resultado, y si me llevo algo, lo coloco en la siguiente columna.

Mi problema viene cuando me llevo varios 1, por ejemplo, que pasa si son 4 1111 lo que tengo en la columna? Pongo un 0 de resultado, porque son pares, pero no se "cuanto llevarme" a la siguiente columna, si cuatro 1, o 4 en binario (100), o llevarme 10 y 10...



K.I.S.S. O "keep it simple, stupid". Perdón por el insulto, no es mía la frase :P

si tienes cuatro "1" hazlo más sencillo. 1+1 y 1+1.
1+1 = 10.
1+1 = 10.

O sea, te llevas dos "1" a la siguiente.

O bien:
10 + 10 = 100.

Y te llevas un "1" dos columnas más allá.
DemonR escribió:Te puedes llevar dos 1 a la siguiente columna, o un 1 dos columnas mas pa lla, que es lo que te va a salir cuando sumes la siguiente columna. Personalmente prefiero la primera opcion, es mas metodica y menos facil equivocarse porque no tienes que llevar el acarreo de varias columnas a la vez.


bas escribió:Te llevas dos unos.



Pues si, haciendolo asi (aunque me lleve cuatro 1, en caso de tener ocho 1s en la columna anterior) si me salen las cuentas.

Eso si, hay que tener cuidadin a la hora de contar, que se te puede ir al carajo todo.

Muchas gracias a todos, menos mal, porque mañana tenia el examen de esto y eso de quedarme bloqueado a las 12 de la noche antes del examen...
No entiendo nada...
Alguien me puede decir de que se trata?
Como puedo leer todo lo que esta escrito aqui?
Rebeca1234 escribió:(...) Alguien me puede decir de que se trata? (...)


Aquí tienes más info.
Concretamente, la dura versa sobre esto.

Saludos.
9 respuestas