How to convert decimal values to a fix length of binary numbers?

24 views (last 30 days)
I have an image of size=500*500*3 consisting of 750,000 elements in decimal values ranging from 0-255. To be honest, I am quite confused myself, I am having trouble understanding the concept. So please correct If I am wrong in interpreting something.
I want to convert every deciamal value to a fix 10-length binary value. The binary value of 255 is 11111111. I want every value to be converted into 10-length binary value.
Like, 255 should be 0011111111, not 11111111 and 9 should be 00001001 rather 1001. So as a whole, I will get 750,000*10 binary values of the original image.
Also, If I convert this 750,000*10 image back into image of 750,000 elements (original values), by converting those 10-length binary numbers into their respective decimal values, I want the orignal image rather some garbage image.
I have been working on it for a few days, but nothing comes up.
  1 Comment
James Tursa
James Tursa on 18 Jan 2021
Edited: James Tursa on 18 Jan 2021
There is no 10-bit native integer in MATLAB. Are you asking about something from the Fixed Point Toolbox? Or each number converted to a 10 character string? What is the class of the variable you want for an output of this conversion? Why do you need 10 bits? Is this for export into a file to be read by another program, or ...?

Sign in to comment.

Accepted Answer

Masoud Dorvash
Masoud Dorvash on 19 Jan 2021
Edited: Masoud Dorvash on 19 Jan 2021
Hi there,
you can easily use
where n is your decimal number and p is your desired length (for your question is 10)
ans =
but you need to becareful that this is not a number (it's string), if you want to convert it to a number you need too use this one instead
hope this works for you.

More Answers (0)


Find more on Convert Image Type in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by