I use a branchless table-driven implementation by Jeroen van der Zijp (http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf) which some time ago I wrapped into a class to make it as convenient as a regular float.
The conversions in both directions are two-liners, and the combined size of all of the lookup tables is less than 10K.
http://homepages.vodafone.co.nz/~tawa47a/Malc/Useful_Classes.htm
It's probably nearly functionally identical to Aressera's
Edit: Bah, Jeroen van der Zijp's original link is now not working for me.
Edit2: Christian Rau has since produced an even more complete version here, which is clearly also based on Jeroen's work, but is more complete than mine, with template meta-programming to avoid unnecessary conversions and such:
Probably best just to use that one.