Effacer les filtres
Effacer les filtres

Convert base 2 to base 10 using loop

5 vues (au cours des 30 derniers jours)
Mary Jeppson
Mary Jeppson le 8 Déc 2016
Commenté : Mary Jeppson le 8 Déc 2016
I've written this loop, but it produces a value of 128 for every number in the mult array instead of going from 128 to 64 to 32 etc. Can anyone tell me why? Thank you for your help!
%Convert base 2 numbers to base 10
base2 = [1 0 1 1 0 0 1];
mult = ones(1,length(base2))
for k = 1:length(base2)
mult(1,k) = mult(1,k)*2^(length(base2-k))
k = k+1
end
base10 = base2*mult'

Réponse acceptée

dbmn
dbmn le 8 Déc 2016
There are two errors in your code
1) Bracket at wrong position (causes your problem to stay at 128 all the time)
mult(1,k) = mult(1,k)*2^(length(base2)-k)
2) Obsolete Increase in loop variable. If you have a for loop, Matlab increases the variable by itself (check the docu). So the following has no effect, since Matlab simply overwrites your changes.
k = k+1
  1 commentaire
Mary Jeppson
Mary Jeppson le 8 Déc 2016
I see! Thank you for your help.
Mary

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements 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