MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

# how to convert a 16-bit or 64-bit signed floting point to binary

Asked by Yang on 28 Mar 2013

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

Jan Simon on 28 Mar 2013

It is not a question of you English, but it is currently not clear, what you mean by "16-bit floating point" type.

Yang on 28 Mar 2013

i don't know what it called in english. what is the type of the number -4.4367e-04 called in english? floating poiont? signed?

Walter Roberson on 28 Mar 2013

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.

## Products

No products are associated with this question.

Answer by Walter Roberson on 28 Mar 2013
```dec2bin(typecast(TheNumber, 'uint16'), 16) - '0'
```

Yang on 31 Mar 2013

I am hoping for a 1*N vector or N*1, both okey. if i could be, i will convinient for me to plug it in the frame which i use to input the channel encoder

Walter Roberson on 31 Mar 2013

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.

Yang on 1 Apr 2013

i would try this tonight, thanks

Answer by Jan Simon on 28 Mar 2013

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')
```