dec2bin function provides wrong answer

10 visualizaciones (últimos 30 días)
Xin
Xin el 27 de Oct. de 2022
Comentada: Xin el 27 de Oct. de 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 comentarios
KALYAN ACHARJYA
KALYAN ACHARJYA el 27 de Oct. de 2022
Why 100b? Its correct
dec2bin(7)
ans = '111'
dec2bin(8)
ans = '1000'
dec2bin(15)
ans = '1111'
dec2bin(20)
ans = '10100'
Xin
Xin el 27 de Oct. de 2022
Ah! Forgot the last bit. Silly me...
Thank you for the clarification!

Iniciar sesión para comentar.

Respuesta aceptada

John D'Errico
John D'Errico el 27 de Oct. de 2022
Editada: John D'Errico el 27 de Oct. de 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 comentario
Xin
Xin el 27 de Oct. de 2022
Yes, indeed. Forgot about the last bit. Thank you so much for your help with this!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Startup and Shutdown en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by