Форматы представления чисел
Представление символьной информации в ПК
Существуют различные способы кодировки символов. В коде обмена информацией ASCII (American Standard Code for Information Interchange), как и во многих других, символы (латинские буквы и цифры, русские буквы, знаки препинания и арифметических операций и другие) обычно кодируются последовательностями из 8 нулей и единиц, т.е. байтами. С помощью байта из 8 нулей и единиц можно закодировать 256 различных символов (28 = 256).
В международном стандарте Unicode на каждый символ отводится два байта. С помощью двух байт можно закодировать 216 = 65 536 различных символов.
Рассмотрим код обмена информацией ASCII. Кодовая таблица ASCII состоит из 256 символов.
Таблица стандартной части кода ASCII
P | h | ||||||||||
! | Q | i | |||||||||
“ | 3A | : | R | 6A | j | ||||||
# | 3B | ; | S | 6B | k | ||||||
$ | 3C | < | T | 6C | l | ||||||
% | 3D | = | U | 6D | m | ||||||
& | 3E | > | V | 6E | n | ||||||
‘ | 3F | ? | W | 6F | o | ||||||
( | @ | X | p | ||||||||
) | A | Y | q | ||||||||
2A | * | B | 5A | Z | r | ||||||
2B | + | C | 5B | [ | s | ||||||
2C | , | D | 5C | \ | t | ||||||
2D | - | E | 5D | ] | u | ||||||
2E | . | F | 5E | ^ | v | ||||||
2F | / | G | 5F | _ | w | ||||||
H | ‘ | x | |||||||||
I | a | y | |||||||||
4A | J | b | 7A | z | |||||||
4B | K | c | 7B | { | |||||||
4C | L | d | 7C | | | |||||||
4D | M | e | 7D | } | |||||||
4E | N | f | 7E | ~ | |||||||
4F | O | g | 7F |
Первая половина таблицы с кодами от 0 до 127 соответствует стандартному интернациональному коду. Символы с кодами от 0 до 31 являются управляющими. Они используются для управления принтером и других специальных целей.
Символы с кодами от 32 до 127 используются для представления знаков пунктуации и арифметических операций, цифр, прописных и строчных букв латинского алфавита.
Вторая половина таблицы с кодами от 128 до 255 называется кодовой страницей и предназначена для представления символов псевдографики, букв национальных алфавитов и других специальных символов.
Таблица альтернативной части кода ASCII (фрагмент с русскими буквами)
А | Р | A0 | а | E0 | р | ||||||
Б | С | A1 | б | E1 | с | ||||||
В | Т | A2 | в | E2 | т | ||||||
Г | У | A3 | г | E3 | у | ||||||
Д | Ф | A4 | д | E4 | ф | ||||||
Е | Х | A5 | е | E5 | х | ||||||
Ж | Ц | A6 | ж | E6 | ц | ||||||
З | Ч | A7 | з | E7 | ч | ||||||
И | Ш | A8 | и | E8 | ш | ||||||
Й | Щ | A9 | й | E9 | щ | ||||||
8A | К | 9A | Ъ | AA | к | EA | ъ | ||||
8B | Л | 9B | Ы | AB | л | EB | ы | ||||
8C | М | 9C | Ь | AC | м | EC | ь | ||||
8D | Н | 9D | Э | AD | н | ED | э | ||||
8E | О | 9E | Ю | AE | о | EE | ю | ||||
8F | П | 9F | Я | AF | п | EF | я |
Здесь 1, 4, 7 и 10-й столбцы – десятичные, 2, 5, 8 и 11-й – шестнадцатеричные коды соответствующих символов, расположенных в 3, 6, 9 и 12-м столбцах.
Пример использования таблицы кодировки для записи слова "Лук" в двоичной форме. Ищем в таблице букву "Л", слева от неё – шестнадцатеричный код этой буквы 8B, аналогично находим коды остальных букв:
8 B E 3 A A
1000 1011 | 1110 0011 | 1010 1010 |
Л у к
Форматы представления чисел
В математике широко используются две формы записи чисел: естественная и нормальная. Примеры естественной формы записи чисел: 1 256 – целое число, 0.0357 – правильная дробь, 4.89760 – неправильная дробь.
Запись одного числа в нормальной форме может быть различной в зависимости от ограничений, накладываемых на ее форму. Например, число 1256 может быть записано так: 1 256= 1,256*103=0,1256* 104 = 12 560*10-1 и т.д.
При естественном представлении чисел в ЭВМ устанавливаются длины разрядной сетки, а также целой и дробной частей. При этом распределение разрядов между целой и дробной частями не изменяется и остается постоянным независимо от величины числа. В связи с этим такое представление числа называется формой с фиксированной запятой. В современных вычислительных машинах эта форма используется преимущественно для представления целых чисел.
Так как числа бывают положительные и отрицательные, то в разрядной сетке при машинном представлении один разряд отводится под знак числа, а остальные образуют поле числа. В знаковый разряд, который обычно располагается перед старшим разрядом числа, записывается информация о знаке числа. Знак положительного числа « + » изображается символом 0, а знак отрицательного числа « – » – символом 1. Если поле числа включает в себя n разрядов, то диапазон представления целых чисел в этом случае ограничивается значениями – (2n -1) и +(2n – 1).
Представление числа в ЭВМ в нормальной форме обычно называют представлением с плавающей запятой, так как положение запятой в записи числа, как показывают приведенные примеры, в этом случае может изменяться. В нормальной форме запись числа А имеет структуру
А= m°qp ,
где m – мантисса числа А; р – порядок числа А (характеристика числа).
Чтобы избежать неоднозначности представления чисел, используют так называемую нормализованную форму: m – число с запятой, фиксированной после определённого разряда. В двоичной системе представления чисел в ПК запятая фиксируется после первой значащей цифры (единицы) и поскольку кроме единицы там ничего быть не может, то эту единицу можно не хранить в памяти ЭВМ (скрытый или неявный бит).
В других системах счисления запятую в мантиссе принято располагать перед первой значащей цифрой и для m справедливо следующее условие:
q-1 ≤ |mA| <1,
где q – основание системы счисления.
Так, числа 12,5*102 и – 0,00543*10-5 в нормализованном виде в соответствии с указанным выше условием должны быть записаны следующим образом:
0,125*104; – 0,543*10-7.
Формат машинного изображения числа с плавающей запятой содержит знаковые части и поля для мантиссы и порядка. Кодирование знаков остается таким же, как и при представлении числа в форме с фиксированной запятой.
Существует стандарт на представление чисел в ПК: IEEE-754 и более новый и общий IEEE-854.
В процессоре все числа хранятся в едином 80-битном расширенном формате. В оперативной памяти целые числа могут занимать 16, 32 или 64 бита, а числа с плавающей точкой – 32, 64 или 80 бит. 18-разрядные десятичные числа автоматически преобразуются в расширенный формат при загрузке в регистры процессора. Результаты вычислений при записи в оперативную память преобразуются в исходный формат, который был задан до загрузки в регистры процессора.