3. Определите, какие отрицательные числа закодированы в словах 1011; 1100; 1001?
Индикаторы переноса и переполнения
Рассмотрим неверный арифметический результат, который возникает из-за конечной числовой системы ЭВМ.
В числовой системе без знака это будет: 1111+0001 = 0000 (15+1 = 0) ® возникает перенос единицы из знакового бита.
В числовой системе со знаком: 1111+0001 = 0000 (-1+1 = 0 – это верно), но
0111+0001 = 1000 (7+1 = - 8 – это неверно) ® возникает перенос в знаковый бит.
Для регистрации переноса из знакового бита процессор имеет индикатор переноса (он содержит один бит информации: 1 – индикатор установлен, 0 – индикатор сброшен). Для регистрации переноса в знаковый бит процессор имеет индикатор переполнения (также 1 - установлен, 0 - сброшен). Если индикатор переноса установлен, то произошла неверная арифметическая операция в системе без знака, если сброшен, то произошла верная операция. Если индикатор переполнения установлен, то произошла неверная арифметическая в системе со знаком. Кроме того, установление или сброс индикаторов зависит еще и от выполняемой операции (например, сложение двух чисел с одинаковым знаком или сложение двух чисел с разными знаками). При конструировании ЭВМ эти условия учитываются и аппаратура разрабатывается таким образом, чтобы индикаторы переноса и переполнения давали информацию о правильности выполнения операций в целом ряде обстоятельств.
Итак, обработка числовой информации в процессоре зависит от длины машинного слова, при этом старший бит машинного слова является знаковым. Представление целых чисел в памяти ЭВМ зависит от того, сколько байт памяти отводится под целое число. Если целое число занимает 2 байта, тогда схему хранения целых чисел можно представить следующим образом:
Диапазон изменения таких чисел равен: - 215 до (215 – 1) ( - 32768 до +32767)
Диапазон изменения целых чисел, которые занимают:
1 байт (8 бит) : - 27 до (27 – 1) (- 128 до +127)
4 байта (32 бита): - 231 до (231 – 1 ) (-2147483648 до + 2147483647)
Отрицательные целые числа представляются в дополнительном коде (посредством операции дополнения до 2-х). Например, для 16-ти битового слова число «- 5» будет иметь код:
1111111111111011 (0000000000000101(+5) ® 1111111111111010 +00000000000000001 ® 1111111111111011)
Представление вещественных чисел
Любое вещественное число Х, представленное в системе счисления с основанием N, можно записать в виде: X = ± m×N±p, где m – мантисса, P – характеристика (или порядок) числа. И это число будет нормализованным, если после запятой в мантиссе стоит не нуль.
Примеры. а) 372,95 = 0,37295×103
0,000000343 = 0,343×10-5
б) 11010,1101 = 0,110101101×25
0,011011 = 0,11011×2-1
Порядок определяет, насколько разрядов необходимо осуществить сдвиг относительно запятой. Это так называемые числа с плавающей запятой.
В памяти ЭВМ вещественные числа, приведенные к нормализованной форме, хранятся следующим образом. Для 32-х битового слова:
Диапазон порядка: -27 до (27 – 1) (-128 до +127) ( при этом один бит из восьми отводится под знак порядка).
Диапазон мантиссы: -223 до (223 – 1) (-8388608 до 8388607)
Диапазон вещественного числа: 1.1754944×E-38 до 3.4028235×E+38, где 1.1754944×E-38 - машинный нуль, а 3.4028235×E+38 – мах вещественное число, после которого будет переполнение. Мах вещ. число равно
.Порядок числа равен 128, а не 127, т.к. следует иметь в виду, что хотя для мантиссы отведены 23 разряда для одинарной точности и 55 разрядов для чисел двойной точности, в операциях участвуют 24 и 56 разрядов, т.е. имеет место скрытый разряд, который при аппаратном выполнении операций автоматически восстанавливается. Порядок числа учитывает скрытый старший разряд мантиссы.
Т.к. мантисса вещественного числа не может содержать более 7 десятичных цифр (ее мах = 8388607), компьютер при вычислениях отбрасывает лишние цифры в мантиссе, поэтому все вычисления с вещественными числами ЭВМ всегда выполняет приближенно, или с ошибкой. При более точных расчетах используются вычисления с двойной точностью. Нормализованные числа двойной точности занимают в два раза больше памяти (64 бита), под мантиссу при этом отводится 64-9 = 55 бит. В результате мантисса содержит 15 десятичных цифр. Точность расчетов возрастает в два раза.
Арифметические операции с вещественными числами сложнее арифметических операций с целыми числами. При выполнении арифметических операций над числами, представленными в формате с плавающей запятой, надо отдельно выполнять их для порядков и мантисс. При сложении – надо сначала порядки слагаемых уровнять; при умножении - порядки складываются, мантиссы перемножаются; при делении – порядки вычитаются, мантиссы делятся. После выполнения операции надо провести нормализацию результата, если это необходимо, т.е. изменить порядок. Таким образом, запятая в изображении числа все время плавает, что и определило термин: числа с «плавающей запятой».
10. Представление символьной информации в ЭВМ
Представление символьной информации. В настоящее время одним из самых массовых приложений ЭВМ является работа с текстами. Термины «текстовая информация» и «символьная информация» используются как синонимы. В информатике под текстом понимается любая последовательность символов из определенного алфавита. Совсем не обязательно, чтобы это был текст на одном из естественных языков (русском, английском и др.). Это могут быть математические или химические формулы, номера телефонов, числовые таблицы и пр. Будем называть символьным алфавитом компьютера множество символов, используемых на ЭВМ для внешнего представления текстов.
Первая задача — познакомить учеников с символьным алфавитом компьютера. Они должны знать, что
— алфавит компьютера включает в себя 256 символов;
— каждый символ занимает 1 байт памяти.
Эти свойства символьного алфавита компьютера, в принципе, уже знакомы ученикам. Изучая алфавитный подход к измерению информации, они узнали, что один символ из алфавита мощностью 256 несет 8 бит, или 1 байт, информации, потому что 256 в 28. Но поскольку всякая информация представляется в памяти ЭВМ в двоичном виде, следовательно, каждый символ представляется 8-разрядным двоичным кодом. Существует 256 всевозможных 8-разрядных комбинаций, составленных из двух цифр «0» и «1» (в комбинаторике это называется числом размещений из 2 по 8 и равно 28): от 00000000 до 11111111. Удобство побайтового кодирования символов очевидно, поскольку байт — наименьшая адресуемая часть памяти и, следовательно, процессор может обратиться к каждому символу отдельно, выполняя обработку текста. С другой стороны, 256 символов — это вполне достаточное количество для представления самой разнообразной символьной информации.
Далее следует ввести понятие о таблице кодировки. Таблица кодировки — это стандарт, ставящий в соответствие каждому символу алфавита свой порядковый номер. Наименьший номер - 0, наибольший - 255. Двоичный код символа — это его порядковый номер в двоичной системе счисления. Таким образом, таблица кодировки устанавливает связь между внешним символьным алфавитом компьютера и внутренним двоичным представлением.
Международным стандартом для персональных компьютеров стала таблица ASSII. На практике можно встретиться и с другой таблицей — КОИ-8 (Код Обмена Информацией), которая используется в глобальных компьютерных сетях, на ЭВМ, работающих под управлением операционной системы Unix, а также на компьютерах типа PDP. К ним, в частности, относится отечественный школьный компьютер Электроника-УКНЦ.
От учеников не нужно требовать запоминания кодов символов. Однако некоторые принципы организации кодовых таблиц они должны знать. Следует рассмотреть вместе с учениками таблицу кода ASCII, приведенную в ряде учебников и в справочниках. Она делится на две части. Международным стандартом является лишь первая половина таблицы, т.е. символы с номерами от 0 до 127. Сюда входят строчные и прописные буквы латинского алфавита, десятичные цифры, знаки препинания, всевозможные скобки, коммерческие и другие символы. Символы с номерами от 0 до 31 принято называть управляющими. Их функция — управление процессом вывода текста на экран или печать, подача звукового сигнала, разметка текста и т.п. Символ номер 32 — пробел, т.е. пустая позиция в тексте. Все остальные отражаются определенными знаками. Важно обратить внимание учеников на соблюдение лексикографического порядка в расположений букв латинского алфавита, а также цифр. На этом принципе основана возможность сортировки символьной информации, с которой ученики впервые встретятся, работая с базами данных.
Вторая половина кодовой таблицы может иметь различные варианты. В первую очередь, она используется для размещения национальных алфавитов, отличных от латинского. Поскольку для кодировки русского алфавита — кириллицы, применяются разные варианты таблиц, то часто возникают проблемы с переносом русского текста с одного компьютера на другой, из одной программной системы в другую. Можно сообщить ученикам, что таблица кодировки символов 128 — 255 называется кодовой страницей и каждый ее вариант имеет свой номер. Так, например, в MS-DOS используется кодовая страница номер 866, а в Windows — номер 1251.
В качестве дополнительной информации можно рассказать о том, что проблема стандартизации символьного кодирования решается введением нового международного стандарта, который называется Unicode. Это 16-разрядная кодировка, т.е. в ней на каждый символ отводится 2 байта памяти. Конечно, при этом объем занимаемой памяти увеличивается в два раза. Но зато такая кодовая таблица допускает включение до 65 536 символов. Ясно, что в нее можно внести всевозможные национальные алфавиты.