Я буду писать часть предложения, а внизу табличку, чтобы понятнее было))
Набрать 9 литров в первую ёмкость.
1. 9 л 2. 0л (пока что)
Перелить 5 литров во вторую ёмкость.
1.4 л 2. 5л
Из второй ёмкости вылить всю воду
1.4л 2. 0л
И из первой ёмкости перелить во вторую ёмкость оставшиеся 4 литра.
1.0 л 2. 4л
Набрать полную первую ёмкость
1. 9л 2. 4л
И из неё перелить во вторую 1 литр.
1. 8л 2. 5л
Воду из второй емкости вылить
1.8 л 2. 0л
И из 8 литров воды в первой ёмкости перелить во вторую ёмкость 5 литров
1. 3л 2. 5л
Вот и все!!
begin //начало программы
var nk, nt, ck ,ct, s: integer // задание переменных типа действительные числа;
writeln('Введите количество карандашей'); //вывести на экран надпись
readln(nk); // запись ответа пользователя в переменную nk
writeln('Введите количество тетрадей'); //вывод на экран надписи
readln(nt); // запись ответа пользователя
writeln('Введите стоимость 1 карандаша'); // вывод на экран надписи
readln(ck); // запись ответа пользователя в переменную
writeln('Введите стоимость 1 тетради');
readln(ct);
s:=(nk*ck)+(nt*ct); // вычисление стоимости покупки
writeln('Стоимость покупки: ',s); // вывод стоимости покупки на экран
end. // конец программы
(ck-стоимость 1 карандаша, ct-стоимость 1 тетради, s-стоимость покупки)
(nk-количество карандашей, nt-количество тетрадей)
Тогда в твоем примере это будет выглядеть так:
00111001000100100000000000000000 - нули слева убираем:
111001000100100000000000000000 - нормализуем мантиссу:
1.11001000100100000000000000000 х 2^29.
Теперь мантисса нормализована.
Если требуется разместить Float-запись этого числа, нужно сделать так:
1. [знак числа] - 1 бит: 0, если число положительное.
2. [смещенный порядок] - 8 бит: порядок числа + 127 (т.е. он никогда не бывет отрицательным, что избавляет нас от необходимости хранить отдельно знак порядка - в этом весь прикол формата IEEE754)
3. [нормализованная мантисса со скрытой единицей] - 23 бита: хранит нормализованную мантиссу. Поскольку мантисса всегда будет начинаться с 1.ххх, единицу мы не пишем, чтобы сэкономить один разряд.
ИТОГО: число в формате Float имеет точность 5-6 десятичных знаков и занимает 4 байта (32 бита) памяти.
Итак:
[0][10011100][11001000100100000000000], итого, мы получили число в формате Float, где:
[10011100] = 127 + 29 = 156(10) = 10011100(2),
а из мантиссы мы взяли только первые 23 разряда, скрыв единицу.
В данном случае число такое, что мы справа теряем только часть нулей, поэтому оно перевелось в Float без потерь значащих разрядов. Будь у нас мантисса, наподобие этой:
1.11001000100100001000100001001 - часть разрядов мы бы потеряли, поскольку данная мантисса просто не влезла бы целиком в 23 разряда.