how to convert a 16-bit or 64-bit signed floting point to binary
5 次查看(过去 30 天)
显示 更早的评论
masters~ now I'm facing a problem that i have to convert some signed floating point numbers to binary, like -4.182068393394077e-04, or 1.3489.
do anybody have some idea or advices?
thanks
5 个评论
Walter Roberson
2013-3-28
I have never encountered an unsigned floating point representation. I have encountered unsigned fixed point representations.
The closest you could get to -4.4367e-04 with a signed floating point representation would be to use a scheme with 1 sign bit, 5 exponent bits, 1 "hidden bit", and 10 bits of mantissa. That would allow you to express -(836/1024 + 1) / 2^12, or approximately -4.4346E-04. Notice this only gives you a few decimal places.
5 digits of accuracy requires 16 or 17 bits and the bits for the exponent. 1 sign bit, 5 bits of exponent, 1 hidden bit, 15 bits of mantissa = 21 bits of representation.
回答(2 个)
Walter Roberson
2013-3-28
dec2bin(typecast(TheNumber, 'uint16'), 16) - '0'
16 个评论
Walter Roberson
2013-3-31
You need binary for the channel encoder. That is
dec2bin(typecast(TheNumber, 'uint16'), 16) - '0'
You can reshape() that to vector form. Just be sure to reshape() it back before using bin2dec() to convert the binary to numeric form.
Jan
2013-3-28
What exactly is a "binary stream"? It could be a vector of doubles, which contains only ones and zeros. Of a vector of type LOGICAL, or UINT8. Or remember, that all numbers are stored in binary format on a computer, so perhaps this is enough already:
x = pi;
x_bin = typecast(x, 'uint8')
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Convert Image Type 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!