Reputation: 368
I need something like uint16_t but for floating point numbers instead of integer. I need to be able to convert a float to it so I can transfer it and convert back to float later (obviously I will lose some precision). Is there a simple solution for this or should I do it manually?
Upvotes: 2
Views: 225
Reputation: 935
There is no such thing in the C standard. Some compilers do have __fp16.
You can use Q numbers, but these are limited in a fixed range.
If you really need floating point, with the exponent, then you should implement the ieee standard half precision.
Regular artimetics work on the Q numbers. You should write your own arithmetic for the half precision. Unless your compiler support it.
Or go open source.
Upvotes: 6