function for addition 2^16 modulo

2 vues (au cours des 30 derniers jours)
Saranya Krishnamurthy
Saranya Krishnamurthy le 17 Avr 2021
Addition modulo (denoted with a boxed plus ⊞)
what is the command for 2^16 addition modulo: a ⊞ b?
Can someone help?
  2 commentaires
James Tursa
James Tursa le 17 Avr 2021
Are a and b type double, or an integer type?
Saranya Krishnamurthy
Saranya Krishnamurthy le 19 Avr 2021
binary
even if its integer its fine

Connectez-vous pour commenter.

Réponses (2)

Bjorn Gustavsson
Bjorn Gustavsson le 19 Avr 2021
Just make sure that your ints a and b are in int32 or larger number of bit-formats, then use:
C = mod(a+b,2^16)
HTH
  1 commentaire
Saranya Krishnamurthy
Saranya Krishnamurthy le 20 Avr 2021
Thank you will try it

Connectez-vous pour commenter.


John D'Errico
John D'Errico le 19 Avr 2021
Modifié(e) : John D'Errico le 19 Avr 2021
Your numbers are in BINARY form, and you want to add modulo 2^16.
The simplest solution is to convert to a decimal integer. I'll assume they are stored as chars. But if they are boolean vectors, just as easy.
A = '101100110001';
B = '10010000001';
AplusB = mod(bin2dec(A) + bin2dec(B),2^16) % as a base 10 integer result
AplusB = 4018
AplusB = dec2bin(AplusB)
AplusB = '111110110010'
You can do it all in one line. Or, you could even write a little function.
binplus16 = @(a,b) dec2bin(mod(bin2dec(A) + bin2dec(B),2^16));
binplus16(A,B)
ans = '111110110010'
As you can see, the result is the same. We could have done it in a variety of ways. But this is simplest.

Catégories

En savoir plus sur Numeric Types dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by