dec2bin function provides wrong answer

9 visualizzazioni (ultimi 30 giorni)
Xin
Xin il 27 Ott 2022
Commentato: Xin il 27 Ott 2022
For example, when I type dec2bin(8), I expect the answer is 100b, instead the returned value in command window is actually 1000
  2 Commenti
KALYAN ACHARJYA
KALYAN ACHARJYA il 27 Ott 2022
Why 100b? Its correct
dec2bin(7)
ans = '111'
dec2bin(8)
ans = '1000'
dec2bin(15)
ans = '1111'
dec2bin(20)
ans = '10100'
Xin
Xin il 27 Ott 2022
Ah! Forgot the last bit. Silly me...
Thank you for the clarification!

Accedi per commentare.

Risposta accettata

John D'Errico
John D'Errico il 27 Ott 2022
Modificato: John D'Errico il 27 Ott 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 Commento
Xin
Xin il 27 Ott 2022
Yes, indeed. Forgot about the last bit. Thank you so much for your help with this!

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Startup and Shutdown in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by