Другие языки программирования и технологии

Как перевести дробное десятичное число в двоичную систему? по шагам пожалуйста 194,5?

Пусть число бит 32, 1-старший бит под знак числа, остальные 8 под хранение экспоненты, остальные 23 под хранение мантиссы. Экспонента хранится в biased виде 2^k-1, где k - число бит, выделенное экспоненте (в нашем случае 8) - итого 2^8-1 = 127
1. Определяем знак - без знака бит пустой.
2.Высчитываем экспоненту. Делим число n=194.5 на 2 до тех пор, пока оно не будет удовлетворять неравенству 1<=n<2
1)194.5/2 = 97.25 2) 97.25/2=48.625 3) 48.625/2 = 24.3125 4) 24.3125/2 = 12.15625 5)12.1562/2 = 6.078125 6)6.078125/2 = 3.0390625 7)3.0390625/2 = 1.51953125 - бинго, получили мантиссу, которая удовлетворяет неравенству выше, и которую нужно будет записать в двоичном виде.
3.Записываем экспоненту относительно bias + число действий, за сколько получили неравенство, то есть за 7 делений в итоге = 127+7=134(если бы число было бы без целой части то нужно вычитать из bias, а на втором этапе нужно было умножать, чтобы получить неравенство) Число 134 записывается для 8 бит экспоненты.
4.Полученную мантиссу 1.51953125 обнуляем целую часть 0.51953125 умножаем на 2, если получаем целую часть 1, записываем в след бит 1 и опять обнуляем целую часть, иначе записываем 0, опять умножаем на 2 дробную часть и т. д пока не получим ноль, либо пока не запишем все биты мантиссы...

Похожие вопросы