Другие языки программирования и технологии
Как перевести дробное десятичное число в двоичную систему? по шагам пожалуйста 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 дробную часть и т. д пока не получим ноль, либо пока не запишем все биты мантиссы...
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 дробную часть и т. д пока не получим ноль, либо пока не запишем все биты мантиссы...
Похожие вопросы
- Как перевести дробное десятичное число в двоичное. С плавающей запятой.
- Как в с++ сложить два числа в двоичной системе? Алгоритм сложения двух чисел в двоичной системе! в с++!!
- Как перевести число из двоичной системы счисления в восьмеричную в Ассемблер (tasm) Программа должна быть простой!
- сложение двоичного и четверичного числа в двоичной системе
- аааа сессия горит!!! помогите написать на си(не с++): перевод числа в двоичную систему
- Переведите число 111 из десятичной системы счисления в двоичную систему счисления.
- Число 10 (в десятичной системе счисления) в двоичной системе счисления имеет вид???
- Двоичное число. Может кто знает, а? Двоичному числу 101101 соответствует десятичное число ...Заранее огромное спасибо!
- Подскажите, как перевести из двоичной в десятичную число 101110,11101
- Перевод из десятичной в двоичную систему счисления.