Как переводить дробные числа с двоичной системы в 10 в с++?
Можно сделать так. Завести две переменные: double x=0, y=0.
Читать строку слева направо. Если пришла цифра b=='0' или '1', то выполнить x=2*x+b-'0'; y*=2;
Если пришла запятая - присвоить y=1. В конце, если y ненулевой, то поделить x на y.
Например, 
для строки 101 : x=5, y=0. Ответ 5.
101,101 : x=45, y=8. Ответ 45/8=5.625
101, : x=5, y=1. Ответ 5.
,101 : x=5, y=8. Ответ 5/8=0.625.
Числа с плавающей запятой/точкой тогда уж.
Вот вам стандарт IEEE 754 если совсем забанили в гугле.
Переведете в двоичную, а там вертите как душе угодно, хоть в hex, хоть в восьмиричную с троичной.