MATLAB Answers

Convert base 2 to base 10 using loop

조회 수: 28(최근 30일)
Mary Jeppson
Mary Jeppson 8 Dec 2016
댓글: Mary Jeppson 8 Dec 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'

  댓글 수: 0

댓글을 달려면 로그인하십시오.

채택된 답변

dbmn
dbmn 8 Dec 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

Mary Jeppson
Mary Jeppson 8 Dec 2016
I see! Thank you for your help.
Mary

댓글을 달려면 로그인하십시오.

추가 답변(0개)

Community Treasure Hunt

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

Start Hunting!

Translated by