ПРЕДСТАВЛЕНИЕ ИНФОРМАЦИИ В ЭВМ
На главную

 

 

Преобразование чисел

Представление информации в ЭВМ

Вопросы и задания

E-mail

Любая информация, поступающая в ЭВМ, преобразуется в двоичный код. Это могут быть тексты, изображения, числа, звуки и т.д. Например, все клавиши клавиатуры компьютера закодированы 8-разрядными двоичными кодами таким образом, что любая буква латинского и русского алфавита, как заглавная, так и прописная, цифры десятичной системы счисления, знаки препинания и другие служебные символы имеют свой индивидуальный двоичный код. Поскольку двоичное 8-разрядное число (байт) может иметь 28 = 256 комбинаций, то этого вполне достаточно для кодирования сразу нескольких текстовых алфавитов. Изображение на экране компьютера представляется в виде растрового расположения точек (пикселей). Информация о содержании каждой точки хранится в одном 8-разрядном двоичном коде. Это позволяет отображать черно-белые изображения с 256-ю градациями яркости. Для цветных изображений каждый из 3-х основных цветов также кодируется 1 байтом, следовательно на каждую цветную точку выделяется 3 байта информации. На кодирование звукового элемента - ноты требуется от нескольких единиц до десятков байт и т.д. С учётом вышеизложенного, одна страница текста имеет информационный объём  ~3 Кбайт, один цветной экранный кадр содержит уже  ~3 Мбайт, а 1,5-часовой цветной телевизионный фильм  ~ 300 Гбайт.

Рассмотрим теперь более подробно процесс кодирования чисел в компьютере. Среди чисел, которые мы используем, встречаются натуральные, целые, рациональные, иррациональные. В вычислительных машинах применяются две формы представления чисел:
              -  естественная форма или форма с фиксированной запятой (точкой);
             -  нормализованная форма или форма с плавающей запятой (точкой);
С фиксированной запятой числа изображаются в виде последовательности цифр с постоянным для всех чисел положением запятой, отделяющей целую часть от дробной. Например,  32,54;  0,0036;  –108,2. Эта форма проста, естественна, но имеет небольшой диапазон представления чисел и поэтому не всегда приемлема при вычислениях. Если в результате операции получится число, выходящее за допустимый диапазон, происходит переполнение разрядной сетки и дальнейшие вычисления теряют смысл. В современных компьютерах форма представления чисел с фиксированной запятой используется только для целых чисел.
С плавающей запятой  числа изображаются в виде X = ±M×P±r, где M - мантисса числа (правильная дробь в пределах 0,1 ≤ M < 1),  r - порядок числа (целое), P - основание системы счисления. Например, приведенные выше числа с фиксированной запятой можно преобразовать в числа с плавающей запятой так: 0,3254×102,  0,36×10–2,  –0,1082×103. Нормализованная форма представления   имеет огромный диапазон чисел и является основной в современных ЭВМ.

Всякое десятичное число, прежде чем оно попадает в память компьютера, преобразуется по схеме:

X10→X2→X2 = M2×102r

После этого осуществляется ещё одна важная процедура:
        -  мантисса с её знаком заменяется кодом мантиссы с её знаком;
        -  порядок числа с его знаком заменяется кодом порядка с его знаком.
Указанные коды двоичных чисел - это образы чисел, которые и воспринимают вычислительные устройства.
Каждому двоичному числу можно поставить в соответствие несколько видов кодов. Существуют следующие коды двоичных чисел:
Прямой код. Прямой код двоичного числа (а это либо мантисса, либо порядок) образуется по такому алгоритму:
   1. Определить данное двоичное число - оно либо целое (порядок), либо правильная дробь (мантисса).
   2. Если это дробь. то цифры после запятой можно рассматривать как целое число.
   3. Если это целое и положительное двоичное число, то вместе с добавлением 0 в старший разряд число превращается в код. Для отрицательного двоичного числа перед ним ставится единица. Например:
число X2 = –0,1011012→ код числа  X пр = 1101101; число Y2 = +0,11011012→ код числа Yпр = 01101101.
Красным цветом выделены знаковые разряды и, кроме того, у кодов отсутствует индекс "2".
Обратный код. Обратный код положительного двоичного числа совпадает с прямым кодом, а для отрицательного числа нужно, исключая знаковый разряд, во всех остальных разрядах нули заменить на единицы и наоборот. Например: число X2 = –0,101012Xпр = 1 10101 → Xобр = 101010;
числоY2 = +0,11012Yпр = 01101 = Yобр.
Дополнительный код. Дополнительный код положительного числа совпадает с его прямым кодом. Дополнительный код отрицательного числа образуется путём прибавления 1 к обратному коду. Например:
число X2 = –0,100102 → Xпр = 110010 → Xобр = 101101 → Xдоп = 101110;
число Y2 = +0,1011 → Yпр = 01011 = Yобр = Yдоп.

Сложение и вычитание двоичных чисел. Сложение чисел, а также вычитание чисел в обратном или дополнительном кодах выполняется с использованием обычного правила арифметического сложения многоразрядных чисел. Это правило распространяется и на знаковые разряды чисел. Различие же обратного и дополнительного кодов связано с тем, что потом делают  с единицей переноса из старшего разряда, изображающего знак числа. При сложении чисел в обратном коде эту единицу надо прибавить к младшему разряду результата, а в дополнительном коде единица переноса из старшего разряда игнорируется. Это очевидно, если вспомнить, что дополнительный код из обратного получается как раз прибавлением единицы. Рассмотрим пример: сложить числа +18 и –7.

Итак, как в обратном, так и в дополнительном кодах результаты сложения совпали и равны 10112= 1110.

Умножение и деление двоичных чисел в ЭВМ производится в прямом коде, а их знаки используются лишь для определения знака результата. Также как и в математике, умножение и деление сводится к операциям сдвигов и сложений(с учётом знака числа).

Полученные коды мантиссы и порядка для каждого числа помещаются в ячейки памяти ЭВМ. Для каждой цифры, входящей в код, в ячейке памяти отводится своё отдельное место. Одна ячейка памяти состоит из 8 бит, т.е. 1 байта. В современных компьютерах 2 байта выделяются для одного машинного слова В последних моделях ПК обработка информации ведётся двойными словами, содержащими 4 байта. Числа с фиксированной запятой имеют формат одного слова, а числа с плавающей запятой - формат двойного слова..
Пример: Дано число с плавающей запятой величиной  –0,625×108. Нужно преобразовать его в машинный код и заполнить 32-разрядную ячейку памяти. Мантисса числа  0,62510 = 0,1012.  Поскольку порядок чисел может быть как положительным, так и отрицательным, то машинный порядок смещается относительно естественного таким образом, чтобы весь диапазон машинных порядков изменялся от 0 до максимума, определяемого количеством разрядов, выделяемых для размещения чисел порядка. Обычно в 32-разрядной ячейке цифры порядка занимают 7 разрядов старшего байта, а восьмой разряд используется для фиксации знака числа.  Семь двоичных разрядов позволяют разместить диапазон десятичных разрядов  от –64 до +63. Если обозначить машинный порядок через R, а естественный через r, то связь между ними будет такая: R10 = r10+6410. Для двоичной системы счисления R2 = r2 + 10000002. В нашем примере порядок r равен 810 = 10002, следовательно R2 = 1001000. В двоичной системе исходное число выглядит так: –0,101х101000. Запись этого числа в 32-разрядной ячейке представлена в таблице:

  Знак числа Порядок Мантисса
№ разряда 31 30 29 28 27 26 25 24 23 22 21 20 19 18 ••• 1 0
Число 1 1 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0

 

 

  Преобразование чисел    Представление информации в ЭВМ    Вопросы и задания    E-mail

наверх