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

17 次查看(过去 30 天)
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 个评论
James Tursa
James Tursa 2021-1-18
编辑:James Tursa 2021-1-18
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 ...?

请先登录,再进行评论。

采纳的回答

Masoud Dorvash
Masoud Dorvash 2021-1-19
编辑:Masoud Dorvash 2021-1-19
Hi there,
you can easily use
dec2bin(n,p)
where n is your decimal number and p is your desired length (for your question is 10)
dec2bin(9,10)
ans =
'0000001001'
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
dec2bin(9,10)-'0'
hope this works for you.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Data Type Conversion 的更多信息

产品


版本

R2014a

Community Treasure Hunt

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

Start Hunting!

Translated by