This is the code I use to convert

It can still be optimised, but first it has to work.

```
private string HexToBin(string hexVal)
{
if (hexVal=="0") return ("0000");
else if (hexVal=="1") return ("0001");
else if (hexVal=="2") return ("0010");
else if (hexVal=="3") return ("0011");
else if (hexVal=="4") return ("0100");
else if (hexVal=="5") return ("0101");
else if (hexVal=="6") return ("0110");
else if (hexVal=="7") return ("0111");
else if (hexVal=="8") return ("1000");
else if (hexVal=="9") return ("1001");
else if (hexVal=="A") return ("1010");
else if (hexVal=="B") return ("1011");
else if (hexVal=="C") return ("1100");
else if (hexVal=="D") return ("1101");
else if (hexVal=="E") return ("1110");
else if (hexVal=="F") return ("1111");
else return ("0000");
}
private float HexToFloat(string hexWaarde)
{
byte[] bins= new byte[32];
string binair=HexToBin(hexWaarde.Substring(0,1))+HexToBin(hexWaarde.Substring(1,1))+HexToBin(hexWaarde.Substring(2,1))+HexToBin(hexWaarde.Substring(3,1))+HexToBin(hexWaarde.Substring(4,1))+HexToBin(hexWaarde.Substring(5,1))+HexToBin(hexWaarde.Substring(6,1))+HexToBin(hexWaarde.Substring(7,1));
bins[31]=Convert.ToByte(binair.Substring(0,1));
bins[30]=Convert.ToByte(binair.Substring(1,1));
bins[29]=Convert.ToByte(binair.Substring(2,1));
bins[28]=Convert.ToByte(binair.Substring(3,1));
bins[27]=Convert.ToByte(binair.Substring(4,1));
bins[26]=Convert.ToByte(binair.Substring(5,1));
bins[25]=Convert.ToByte(binair.Substring(6,1));
bins[24]=Convert.ToByte(binair.Substring(7,1));
bins[23]=Convert.ToByte(binair.Substring(8,1));
bins[22]=Convert.ToByte(binair.Substring(9,1));
bins[21]=Convert.ToByte(binair.Substring(10,1));
bins[20]=Convert.ToByte(binair.Substring(11,1));
bins[19]=Convert.ToByte(binair.Substring(12,1));
bins[18]=Convert.ToByte(binair.Substring(13,1));
bins[17]=Convert.ToByte(binair.Substring(14,1));
bins[16]=Convert.ToByte(binair.Substring(15,1));
bins[15]=Convert.ToByte(binair.Substring(16,1));
bins[14]=Convert.ToByte(binair.Substring(17,1));
bins[13]=Convert.ToByte(binair.Substring(18,1));
bins[12]=Convert.ToByte(binair.Substring(19,1));
bins[11]=Convert.ToByte(binair.Substring(20,1));
bins[10]=Convert.ToByte(binair.Substring(21,1));
bins[09]=Convert.ToByte(binair.Substring(22,1));
bins[08]=Convert.ToByte(binair.Substring(23,1));
bins[07]=Convert.ToByte(binair.Substring(24,1));
bins[06]=Convert.ToByte(binair.Substring(25,1));
bins[05]=Convert.ToByte(binair.Substring(26,1));
bins[04]=Convert.ToByte(binair.Substring(27,1));
bins[03]=Convert.ToByte(binair.Substring(28,1));
bins[02]=Convert.ToByte(binair.Substring(29,1));
bins[01]=Convert.ToByte(binair.Substring(30,1));
bins[00]=Convert.ToByte(binair.Substring(31,1));
int exponent=(bins[30]*128+ bins[29]*64+bins[28]*32+bins[27]*16+bins[26]*8+bins[25]*4+bins[24]*2+bins[23])-127;
float significand=(float)(1+bins[22]*Math.Pow(2,-1)+bins[21]*Math.Pow(2,-2)+bins[20]*Math.Pow(2,-3)+bins[19]*Math.Pow(2,-4)+bins[18]*Math.Pow(2,-5)+bins[17]*Math.Pow(2,-6)+bins[16]*Math.Pow(2,-7)+bins[15]*Math.Pow(2,-8)+bins[14]*Math.Pow(2,-9)+bins[13]*Math.Pow(2,-10)+bins[12]*Math.Pow(2,-11)+bins[11]*Math.Pow(2,-12)+bins[10]*Math.Pow(2,-13)+bins[09]*Math.Pow(2,-14)+bins[08]*Math.Pow(2,-15)+bins[07]*Math.Pow(2,-16)+bins[06]*Math.Pow(2,-17)+bins[05]*Math.Pow(2,-18)+bins[04]*Math.Pow(2,-19)+bins[03]*Math.Pow(2,-20)+bins[02]*Math.Pow(2,-21)+bins[01]*Math.Pow(2,-22)+bins[00]*Math.Pow(2,-24));
if (bins[31]==1) return (float) (-1*significand * Math.Pow(2,exponent));
else return (float) (-1*significand * Math.Pow(2,exponent));
}
```