dec2bin function provides wrong answer

For example, when I type dec2bin(8), I expect the answer is 100b, instead the returned value in command window is actually 1000

2 commentaires

Why 100b? Its correct
dec2bin(7)
ans = '111'
dec2bin(8)
ans = '1000'
dec2bin(15)
ans = '1111'
dec2bin(20)
ans = '10100'
Xin
Xin le 27 Oct 2022
Ah! Forgot the last bit. Silly me...
Thank you for the clarification!

Connectez-vous pour commenter.

 Réponse acceptée

John D'Errico
John D'Errico le 27 Oct 2022
Modifié(e) : John D'Errico le 27 Oct 2022
So the binary representation of 8 is not 1000?
Let me see, 8 = 1*2^3 + 0*2^2 + 0*2^1 + 0*2^0.
I think you are mistaken.
dec2bin(8)
ans = '1000'
1*2^3 + 0*2^2 + 0*2^1 + 0*2^0
ans = 8
In fact, the number 100 in binary is the decimal 4.
1*2^2 + 0*2^1 + 0*2^0
ans = 4
Maybe you forgot about that least order (units) bit. Note that if binary numbers did not have that least order unit bit, then a binary number could never represent any odd number. And that in itself would be quite an "odd" thing.

1 commentaire

Xin
Xin le 27 Oct 2022
Yes, indeed. Forgot about the last bit. Thank you so much for your help with this!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by