Binary addition in MATLAB
Mostrar comentarios más antiguos
Is it possible to do binary addition in MATLAB? I tried using the usual add function but it didnt work. I defined 2 numbers as binary digits, say 1010 and 1100. The output came out as 2100. It's a direct addition of 2 numbers.
3 comentarios
Andreas Goser
el 21 de Feb. de 2011
You could help the community to help by giving your code and not speculate
Jan
el 21 de Feb. de 2011
I assume that 1010 and 1100 results in 2110 and not 2100.
"Is it possible to do binary addition in MATLAB? I tried using the usual add function but it didnt work"
All numbers are binary. When MATLAB adds numbers it is doing very efficient binary addition for you.
N = 0b1010 + 0b1100
dec2bin(N)
Respuesta aceptada
Más respuestas (6)
sundeep cheruku
el 14 de Abr. de 2013
Editada: Walter Roberson
el 14 de Abr. de 2013
fliplr(de2bi(bi2de(fliplr([1 0 1 0]))+bi2de(fliplr([1 1 0 0]))))
while using bi2de or de2bi it takes the first bit as LSB and last bit as MSB so fliplr is necessary to use.
Hope this might work.
1 comentario
K E
el 22 de Jul. de 2016
For other newbies trying to understand: LSB and MSB are least and most significant bit and the fliplr is to get the bits in the desired order.
Andreas Goser
el 21 de Feb. de 2011
Try:
dec2bin(bin2dec('1010')+bin2dec('1100'))
1 comentario
Paulo Silva
el 21 de Feb. de 2011
I wonder why matlab doesn't provide a simple way to work with binary numbers just like we do with decimal, these days any cheap calculator can do that.
Paulo Silva
el 21 de Feb. de 2011
0 votos
http://www.mathworks.com/matlabcentral/newsreader/view_thread/257224
1 comentario
Andreas Goser
el 21 de Feb. de 2011
You were faster... I was also considering to use lmgtfy.com :-)
Datla Ashwin
el 1 de Mzo. de 2011
0 votos
1 comentario
Walter Roberson
el 1 de Mzo. de 2011
You haven't defined which variety of binary addition you want.
Nicolás Dueñas
el 2 de Ag. de 2016
Editada: Walter Roberson
el 2 de Ag. de 2016
0 votos
Kevin
el 27 de Nov. de 2024
If you don't care about the carry bit:
mod([1 0 1 0] + [1 1 0 0],2)
1 comentario
That won't work if there's any carrying. Adding 7 and 1 ought to give 8 not 6:
mod([0 1 1 1] + [0 0 0 1], 2)
0b0111 + 0b0001
Categorías
Más información sobre Code Generation en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!