[МУЗЫКА] [МУЗЫКА] [МУЗЫКА] Теперь поговорим о представлении данных в ЭВМ. Самой мелкой единицей данных является один бит. Это просто один триггер. Еще раз с удовольствием повторю, что триггер изобрел наш земляк профессор института связи, который теперь носит его имя, Бонч-Бруевич. Следующей единицей данных является байт. 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 будет снова бесконечность, она не сломается. Просто будет снова бесконечность. Нуль — порядок нуль, и мантисса нуль. Ну, это, по-моему, довольно естественное представление. И, наконец, так называемые, денормализованные числа, у которых мантисса не равна нулю, а порядок — единичка. И подразумевается старший разряд не единичка, как во всех остальных нормализованных числах, а ноль. Денормализованные числа применяются при вычислении особо маленьких чисел. И во всех машинах денормализованные числа работают очень медленно, поэтому ими надо пользоваться с осторожностью. Но иногда это полезно для представления особо маленьких вещественных чисел. [НЕТ_ЗВУКА]