[МУЗЫКА]
[МУЗЫКА] [МУЗЫКА]
Теперь поговорим о представлении данных в ЭВМ.
Самой мелкой единицей данных является один бит.
Это просто один триггер.
Еще раз с удовольствием повторю, что триггер изобрел наш земляк профессор
института связи, который теперь носит его имя, Бонч-Бруевич.
Следующей единицей данных является байт.
8 бит.
Надо вам сказать, что до 1964 года,
когда был объявлен выпуск IBM 360, разные машины
имели разное представление о байте, единичке данных, в которых хранится...
которые используют для представления одной литеры.
6, 7, 8 битов, но с появлением IBM
360 международным стандартом стал байт из 8 битов.
Также есть слово.
Раньше слово представлялось 16 битами, теперь большей частью 32 битами.
И наконец, двойное слово из 64 бит, а в некоторых машинах даже 128 бит.
Если целые числа представляются относительно просто,
просто последовательность ноликов и единичек, (максимум,
что можно сказать, что отрицательные числа представляются в так называемом
дополнительном коде) то вот вещественные числа уже имеют особенность.
Представление вещественного числа состоит из двух частей: мантисса и порядок.
Мантисса, так сказать, дробная часть — 0,323.
А потом умножается на 2 в степени «порядок».
И тут тоже есть своя история,
свои проблемы, поскольку раньше в разных машинах представление чисел было
совершенно разное, и поэтому если вы отлаживали программу на одной машине,
а пытаетесь посчитать эту же программу на другой машине,
то могли возникнуть проблемы с точностью, с разрядной сеткой, и так далее.
И вот в 1985 году был принят стандарт IEEE Международной
организацией электронных и электрических инженеров, который придумал, что мне
опять-таки приятно отметить, профессор математики из Беркли Вильям Каган.
Он продумал некую систему, которая всем понравилась.
Она сначала стала стандартом де-факто, то есть все пользовались,
но стандарта не было, а потом и формально была оформлена в качестве стандарта.
Вот поглядите на этот слайд.
Выглядит немножко страшно, но ничего особо трудного тут нет.
Значит, 31-й разряд в одинарной точности — это всегда знак.
Знак числа.
Единичка — минус, ноль — плюс.
Потом порядок, занимает 8 бит, но только вот Каган придумал,
что удобнее порядок хранить не относительно ноля,
или ноля отрицательного, а сдвинуть на 127, то есть если в 30-м
разряде единичка, а все остальные ноли, то это значит — порядок ноль.
И мантисса, 23 бита.
Ну вот Каган решил, что удобнее хранить числа не в дробном виде,
не так, как раньше было, 0 целых, точка и дальше там какая-то дробная часть,
а единичка, точка и какая-то дробная часть.
То есть числа нормализованы, но и хранят мантиссы в пределах от 1 до 2.
А не от 0 до 1, как это было раньше.
Ну, вот так он счел более удобным, и поскольку все числа нормализованы,
то есть старший бит — всегда единичка, поэтому старшую единичку можно в памяти не
хранить, и поэтому мантисса не 23 бита, а целых 24 бита.
Может быть, и не так много, но все-таки точность увеличивается.
То есть одна единичка подразумевается.
И, наконец, двойная точность.
Все примерно то же самое, только размеры другие.
Порядок 11 бит, а мантисса 52 бита.
И, как обычно, старший разряд — это единица, поэтому она подразумевается,
и поэтому не 52, а 53 бита реально числа в мантиссе.
Но хранятся только 52 бита.
И вот, вы знаете, вот этот стандарт укоренился, сколько лет уже прошло с
1985-го года, но никто даже не думает его изменить, модифицировать, то есть
этот стандарт был придуман математиком и очень удачно, что мне нравится.
Есть понятие «особенные вещественные числа».
Прежде всего — not a number.
Если по какой-то ошибке возникнет число, в котором порядок — все единицы,
а мантисса не нулевая, то это считается ошибочная ситуация, и это вообще не число.
Бывают ситуации, когда NaN возникает.
Бесконечность.
Порядок — все единицы, а мантисса — чистый ноль.
Это считается бесконечность.
И, кстати, бесконечность может попасть в операнд, в математическую операцию,
и бесконечность + 2 будет снова бесконечность, она не сломается.
Просто будет снова бесконечность.
Нуль — порядок нуль, и мантисса нуль.
Ну, это, по-моему, довольно естественное представление.
И, наконец, так называемые, денормализованные числа,
у которых мантисса не равна нулю, а порядок — единичка.
И подразумевается старший разряд не единичка,
как во всех остальных нормализованных числах, а ноль.
Денормализованные числа применяются при вычислении особо маленьких чисел.
И во всех машинах денормализованные числа работают очень медленно,
поэтому ими надо пользоваться с осторожностью.
Но иногда это полезно для представления особо маленьких вещественных чисел.
[НЕТ_ЗВУКА]