Раздел 1. Введение в архитектуру эвм. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Раздел 1. Введение в архитектуру эвм.



Раздел 1. Введение в архитектуру ЭВМ.

 

Тема 1.3. Представление данных и машинные операции.

 

План:

1. Беззнаковые и знакопеременные целые числа.

2. Десятичные числа.

3. Вещественные числа.

4. Символы, строки и тексты.

5. Логические данные.

6. Битовые поля.

7. Прочие виды информации.

8. Классификация машинных операций.

 

Машинные команды оперируют данными, которые в этом случае принято называть операндами. К наиболее общим (базовым) типам операндов можно отнести:

1. адреса,

2. числа,

3. символы,

4. логические данные.

Помимо них ВМ обеспечивает обработку и более сложных информационных единиц:

· графических изображений,

· аудио-,

· видео-,

· анимационной информации.

Такая информация является производной от базовых типов данных и хранится в виде файлов на внешних запоминающих устройствах. Для каждого типа данных в ВМ предусмотрены определенные форматы.

Среди цифровых данных можно выделить две группы:

1. целые типы, используемые для представления целых чисел;

2. вещественные типы для представления рациональных чисел.

В рамках первой группы имеется несколько форматов представления численной информации, зависящих от ее характера. Для представления вещественных чисел используется форма с плавающей запятой.

 

Беззнаковые и знакопеременные целые числа.

 

Представление числа X в форме с фиксированной запятой (ФЗ), которую иногда называют также естественной формой, включает в себя знак числа и его модуль в q -ичном коде. Здесь q - основание системы или база. Для современных ВМ характерна двоичная система (q = 2), но иногда используются также восьмеричная (q = 8) или шестнадцатеричная (q = 16) системы счисления. Запятую в записи числа называют соответственно двоичной, восьмеричной или шестнадцатеричной. Знак положительного числа кодируется двоичной цифрой 0, а знак отрицательного числа - цифрой 1.

Числам с ФЗ соответствует запись вида:

Х = ± an-1…a1a0a-1a-2…a-r

Отрицательные числа обычно представляются в дополнительном коде. Разряд кода числа, в котором размещается знак, называется знаковым разрядом кода. Разряды, где располагаются значащие цифры числа, называются цифровыми разрядами кода. Знаковый разряд размещается левее старшего цифрового разряда. Положение запятой одинаково для всех чисел и в процессе решения задач не меняется. Хотя запятая и фиксируется, в коде числа она никак не выделяется, а только подразумевается. В общем случае разрядная сетка ВМ для размещения чисел в форме с ФЗ имеет вид:


 

 

Целая часть числа

 

Дробная часть числа

qn-1   q1 q0 q-1 q-2   q-r
Знак an-1 a1 a0 . a-1 a-2 a-r

 

где n разрядов используются для записи целой части числа и r разрядов — для дробной части.

При заданных значениях n и r диапазон изменения модулей чисел, коды которых могут быть представлены в данной разрядной сетке, определяется соотношением:

Q-r = |X| = qn – q-r

 

Если число является смешанным (содержит целую и дробную части), оно обрабатываются как целое, хотя и не является таковым (в этом случае применяют термин масштабируемое целое). Обработка смешанных чисел в ВМ встречается крайне редко. Как правило, используются ВМ с дробной (n = 0) либо целочисленной (r = 0) арифметикой.

При фиксации запятой перед старшим цифровым разрядом могут быть представлены только правильные дроби. Для ненулевых чисел возможны два варианта представления (нулевому значению соответствуют нули во всех разрядах): знаковое и беззнаковое. Фиксация запятой перед старшим разрядом встречалась в ряде машин второго поколения, но в настоящее время практически отжила свое.

 

Формат без знакового разряда

Формат со знаковым разрядом

2-1 2-2   2(n-3) 2(n-2)   2-1   2(n-2) 2(n-1)
          Знак        
0 1   n-2 n-1 0 1   n-2 n-1

2-(т-2) < = x <= 1 – 2-(n-2)

2-(n-1) <= abs(x) <= 1 – 2-(n-1)

 

При фиксации запятой после младшего разряда представимы лишь целые числа. Это наиболее распространенный способ, поэтому в дальнейшем понятие ФЗ будет связываться исключительно с целыми числами, а операции с числами в форме ФЗ будут характеризоваться как целочисленные. Здесь также возможны числа со знаком и без знака:

 

Формат со знаковым разрядом

2n-1 2n-2   21 20   2n-2   21 20
          Знак        
0 1   n-2 n-1 0 1   n-2 n-1

0 < = x <= 2n - 1

0 < = abs(x) <= 2n - 1

 

Приведем целочисленные форматы с фиксированной запятой, принятые в микропроцессорах фирмы Intel:

1. Байт (целое со знаком) – 8 бит, бит с номером 7 – знак;

2. Слово (целое со знаком) – 16 бит, бит с номером 15 – знак;

3. Двойное слово (целое со знаком) – 32 бита, бит с номером 31 – знак;

4. Байт (целое без знака) – 8 бит;

5. Слово (целое без знака) – 16 бит;

6. Двойное слово (целое без знака) – 32 бита;

7. Ближний указатель – 32 бита, хранит смещение или линейный адрес;

8. Длинный указатель или логический адрес – 48 бит, биты с номерами 47-32 хранят селектор сегмента, а биты с номерами 31-0 – смещение.

 

Целые числа применяются также для работы с адресами.

 


Представление чисел в формате ФЗ упрощает аппаратурную реализацию ВМ и сокращает время выполнения машинных операций, однако при решении задач необходимо постоянно следить за тем, чтобы все исходные данные, промежуточные и окончательные результаты не выходили за допустимый диапазон формата, иначе возможно переполнение разрядной сетки и результат вычислений будет неверным.

Рассмотрим хранение целых чисел в компьютере формате ФЗ на примере:

В этом случае каждому разряду ячейки памяти соответствует всегда один и тот же разряд числа, а "запятая" "находится" справа после младшего разряда, то есть вне разрядной сетки.

Для хранения целых неотрицательных чисел отводится одна ячейка памяти (8 битов). Например, число А2 = 111100002 будет храниться в ячейке памяти следующим образом:

1 1 1 1 0 0 0 0

Максимальное значение целого неотрицательного числа достигается в случае, когда во всех ячейках хранятся единицы. Для n -разрядного представления оно будет равно

2n - 1.

Определим диапазон чисел, которые могут храниться в оперативной памяти в формате целых неотрицательных чисел. Минимальное число соответствует восьми нулям, хранящимся в восьми битах ячейки памяти, и равно нулю. Максимальное число соответствует восьми единицам и равно

А = 1 × 27 + 1 × 26 + 1 × 25 + 1 × 24 + 1 × 23 + 1 × 22 + 1 × 21 + 1 × 20 = 1 × 28 - 1 = 25510.

Диапазон изменения целых неотрицательных чисел чисел: от 0 до 255.

Для хранения целых чисел со знаком отводится две ячейки памяти (16 битов), причем старший (левый) разряд отводится под знак числа (если число положительное, то в знаковый разряд записывается 0, если число отрицательное - 1).

Представление в компьютере положительных чисел с использованием формата "знак-величина" называется прямым кодом числа. Например, число 200210 = 111110100102 будет представлено в 16-разрядном представлении следующим образом:

0 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0

Максимальное положительное число (с учетом выделения одного разряда на знак) для целых чисел со знаком в n -разрядном представлении равно:

А = 2n-1 - 1.

Для представления отрицательных чисел используется дополнительный код. Дополнительный код позволяет заменить арифметическую операцию вычитания операцией сложения, что существенно упрощает работу процессора и увеличивает его быстродействие.

Дополнительный код отрицательного числа А, хранящегося в n ячейках, равен 2n - |A|.

Дополнительный код представляет собой дополнение модуля отрицательного числа А до 0, так как в n -разрядной компьютерной арифметике:

2n - |А| + |А| = 0,

поскольку в компьютерной n -разрядной арифметике 2n = 0. Действительно, двоичная запись такого числа состоит из одной единицы и n нулей, а в n -разрядную ячейку может уместиться только n младших разрядов, то есть n нулей.

Для получения дополнительного кода отрицательного числа можно использовать довольно простой алгоритм:

1. Модуль числа записать в прямом коде в n двоичных разрядах.

2. Получить обратный код числа, для этого значения всех битов инвертировать (все единицы заменить на нули и все нули заменить на единицы).

3. К полученному обратному коду прибавить единицу.


Запишем дополнительный код отрицательного числа -2002 для 16-разрядного компьютерного представления:

 

Прямой код модуля | -200210 | 00000111110100102
Обратный код Инвертирование 11111000001011012
  Прибавление единицы 11111000001011012 + 00000000000000012
Дополнительный код   111110000010111012

 

При n-разрядном представлении отрицательного числа А в дополнительным коде старший разряд выделяется для хранения знака числа (единицы). В остальных разрядах записывается положительное число

2n-1 - |А|.

Тогда минимальное отрицательное число равно:

А = - 2n-1.

Определим диапазон чисел, которые могут храниться в оперативной памяти в формате длинных целых чисел со знаком (для хранения таких чисел отводится четыре ячейки памяти - 32 бита).

Максимальное положительное целое число (с учетом выделения одного разряда на знак) равно:

А = 231 - 1 = 2 147 483 64710.

Минимальное отрицательное целое число равно:

А = -231 = - 2 147 483 64810.

Достоинствами представления чисел в формате с фиксированной запятой являются простота и наглядность представления чисел, а также простота алгоритмов реализации арифметических операций.

Недостатком представления чисел в формате с фиксированной запятой является небольшой диапазон представления величин, недостаточный для решения математических, физических, экономических и других задач, в которых используются как очень малые, так и очень большие числа.

 

Упакованные целые числа

 

В современных микропроцессорах имеются команды, оперирующие целыми числами, представленными в упакованном виде. Связано это с обработкой мультимедийной информации. Формат предполагает упаковку в пределах достаточно длинного слова (обычно 64-разрядного) нескольких небольших целых чисел, а соответствующие команды обрабатывают все эти числа параллельно. Если каждое из чисел состоит из четырех двоичных разрядов, то в 64-разрядное слово можно поместить до 16 таких чисел. Неиспользованные разряды заполняются нулями. В микропроцессорах фирмы Intel, начиная с Pentium MMX присутствуют специальные команды для обработки мультимедийной информации (ММХ-команды), оперирующие целыми числами, упакованными в квадрослова (64-разрядные слова). Предусмотрены три формата:

  1. упакованные байты (восемь 8-разрядных чисел);
  2. упакованные слова (четыре 16-разрядных числа);
  3. упакованные двойные слова (два 32-разрядных числа).

Байты в формате упакованных байтов нумеруются от 0 до 7, причем байт 0 располагается в младших разрядах квадрослова. Аналогичная система нумерации и размещения упакованных чисел применяется для упакованных слов (номера 0-3) и упакованных двойных слов (номера 0-1).

Идентичные форматы упакованных данных применяются также в другой технологии обработки мультимедийной информации, предложенной фирмой AMD и реализованной в микропроцессорах данной фирмы.


Десятичные числа.

 

В ряде задач, главным образом, учетно-статистического характера, приходится иметь дело с хранением, обработкой и пересылкой десятичной информации. Особенность таких задач состоит в том, что обрабатываемые числа могут состоять из различного и весьма большого количества десятичных цифр. Традиционные методы обработки с переводом исходных данных в двоичную систему счисления и обратным преобразованием результата зачастую сопряжены с существенными накладными расходами. По этой причине в ВМ применяются иные специальные формы представления десятичных данных. В их основу положен принцип кодирования каждой десятичной цифры эквивалентным двоичным числом из четырех битов (тетрадой), то есть так называемым двоично-десятичным кодом (BCD -Binary Coded Decimal).

Используются два формата представления десятичных чисел (все числа рассматриваются как целые):

1. зонный (распакованный);

2. уплотненный (упакованный).

 

В обоих форматах каждая десятичная цифра представляется двоичной тетрадой, то есть заменяется двоично-десятичным кодом. Из оставшихся задействованных шести четырехразрядных двоичных комбинаций (24 = 16) две служат для кодирования знаков «+» и «-». Например, в ВМ семейства IBM 360/370/390 для знака «плюс» выбран код 11002 = С16, а для знака «минус» - код 11012 = D16.

Зонный формат применяется в операциях ввода/вывода. В нем под каждую цифру выделяется один байт, где младшие четыре разряда отводятся под код цифры, а в старшую тетраду (поле зоны) записывается специальный код «зона», не совпадающий с кодами цифр и знаков. В IBM 360/370/390 это код 11112 = F16. Исключение составляет байт, содержащий младшую цифру десятичного числа, где в поле зоны хранится знак числа.

 

Байт

Байт

 

Байт

Байт

Зона Цифра Зона Цифра … Зона Цифра Знак Цифра                  

 

Пример записи числа -7396 в зонном формате:

 

Байт

Байт

Байт

Байт

Зона 7 Зона 3 Зона 9 Минус 6
1111 0111 1111 0011 1111 1001 1101 0110

 

В некоторых ВМ принят вариант зонного формата, где поле зоны заполняется нулями.

При выполнении операций сложения и вычитания над десятичными числами обычно используется упакованный формат и в нем же получается результат (умножение и деление возможно только в зонном формате). В упакованном формате каждый байт содержит коды двух десятичных цифр. Правая тетрада последнего байта предназначается для записи знака числа. Десятичное число должно занимать целое количество байтов. Если это условие не выполняется, то четыре старших двоичных разряда левого байта заполняется нулями.

 

Байт

Байт

 

Байт

Байт

Цифра Цифра Цифра Цифра Цифра Цифра Цифра Знак
                 

 

Пример записи числа -7396 в упакованном формате:

 

Байт

Байт

Байт

0 7 3 9 6 Минус
0000 0111 1111 10 01 0110 1101

 

Размещение знака в младшем байте, как в зонном, так и в упакованном представлениях, позволяет задавать десятичные числа произвольной длины и передавать их в виде цепочки байтов. В этом случае знак указывает, что байт, в котором он содержится, является последним байтом данного числа, а следующий байт последовательности — это старший байт очередного числа.

 

Вещественные числа.

 

От недостатков ФЗ в значительной степени свободна форма представления чисел с плавающей запятой (ПЗ), известная также под названиями нормальной или полулогарифмической формы. В данном варианте каждое число разбивается на две группы цифр. Первая группа цифр называется мантиссой, вторая - порядком. Число представляется в виде произведения X = ± mq± p, где mмантисса числа X, рпорядок числа, qоснование системы счисления.

Для представления числа в форме с ПЗ требуется задать знаки мантиссы и порядка, их модули в q -ичном коде, а также основание системы счислении. Нормальная форма неоднозначна, так как взаимное изменение m и p приводит к «плаванию» запятой, чем и обусловлено название этой формы.

 

       

Модуль порядка

 

Модуль мантиссы

Знак m   Знак p   pr-1 … p1 p0   m-1 m-2 … m-n                          

 

Диапазон и точность представления чисел с ПТ зависят от числа разрядов, отводимых под порядок и мантиссу.

Помимо разрядности порядка и мантиссы диапазон представления чисел зависит и от основания используемой системы счисления, которое может быть отличным от 2. Это позволяет при одинаковом количестве битов, отведенных под порядок, представлять числа в большем диапазоне. Так, если поле порядка равно 7 битам, максимальное значение, на которое умножается мантисса, равно 2128 (при q = 2) или 16128  (при q = 16), а диапазоны представления чисел соответственно составят 10-19<|Х|<10+19 и 10-76<|X|<10+76. Известны также случаи использования базы 8.

В большинстве ВМ для упрощения операций над порядками последние приводят к целым положительным числам, применяя так называемый смещенный порядок. Для этого к истинному порядку добавляется целое положительное число — смещение. Например, в системе со смещением 128 порядок -3 представляется как 125 (-3 + 128). Обычно смещение выбирается равным половине представимого диапазона порядков. Отметим, что смещенный порядок занимает все биты поля порядка, в том числе и тот, который ранее использовался для записи знака порядка.

 

   

Смещенный порядок

 

Модуль мантиссы

Знак m   P, pr-1 p1 p0   m-1 m-2 m-n
                       

 

Мантисса в числах с ПЗ обычно представляется в нормализованной форме. Это означает, что на мантиссу налагаются такие условия, чтобы она по модулю была меньше единицы (|q|<1), а первая цифра после точки отличалась от нуля. Полученная таким образом мантисса называется нормализованной. Для применяемых в ВМ систем счисления можно записать:

· двоичная: Х=q2p, (1>|q|-S);??????

· восьмеричная: X=q8p, (1>|q|=?);??????

· шестнадцатеричная: X =q16p, (1>|q|=1/16).???????

Если первые i цифр мантиссы равны нулю, для нормализации ее нужно сдвинуть относительно запятой на i разрядов влево с одновременным уменьшением порядка на i единиц. В результате такой операции число не изменяется.

 



Б аза

До нормализации

После нормализации

Порядок Мантисса Порядок Мантисса
2 100 0,000110 001 0,110000
16 8 0,001 x 109 6 0,1 x 10 9

 

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

Если для записи числа с ПЗ используется база 2 (q = 2), то часто применяют еще один способ повышения точности представления мантиссы, называемый приемом скрытой единицы. Суть его в том, что в нормализованной мантиссе старшая цифра всегда равна единице (для представления нуля используется специальная кодовая комбинация), следовательно, эта цифра может не записываться, а подразумеваться. Запись мантиссы начинают с ее второй цифры, и это позволяет задействовать дополнительный значащий бит для более точного представления числа. Следует отметить, что значение порядка в данном случае не меняется. Скрытая единица перед выполнением арифметических операций восстанавливается, а при записи результата — удаляется. Таким образом, нормализованная мантисса 0,101000(1) при использовании способа «скрытой единицы» будет иметь вид 0,010001 (в скобках указана цифра, не поместившаяся в поле мантиссы при стандартной записи).

Для более существенного увеличения точности вычислений под число отводят несколько машинных слов, например два. Дополнительные биты, как правило, служат для увеличения разрядности мантиссы, однако в ряде случаев часть из них может отводиться и для расширения поля порядка. В процессе вычислений может получаться ненормализованное число. В таком случае ВМ, если это предписано командой, автоматически нормализует его.

Рассмотренные принципы представления чисел с ПЗ поясним на примере. Представим следующим образом типичный 32-битовый формат числа с ПЗ.

 

0 1                        8 9                                                           31
Знак мантиссы Смещенный порядок Мантисса

 

Старший (левый) бит содержит знак числа. Значение смещенного порядка хранится в разрядах с 1-го по 8-й и может находиться в диапазоне от 0 до 255. Для получения фактического значения порядка из содержимого этого поля нужно вычесть фиксированное значение, равное 128. С таким смещением фактические значения порядка могут лежать в диапазоне от -128 до +127. В примере предполагается, что основание системы счисления равно 2. Третье поле слова содержит нормализованную мантиссу со скрытым разрядом (единицей). Благодаря такому приему 23-разрядное поле позволяет хранить 24-разрядную мантиссу в диапазоне oт 0,5 до 1,0.

 

В варианте с ФЗ для целых чисел в дополнительном коде могут быть представлены все целые числа от -231 до 231 – 1, то есть всего 232 различных чисел. Для случая ПЗ возможны следующие диапазоны чисел:

В эту область не включены пять участков:

 

Показанная запись числа с ПЗ не учитывает нулевого значения. Для этой цели используется специальная кодовая комбинация. Переполнения возникают, когда в результате арифметической операции получается значение большее, чем можно представить порядком 127 (2120 x 2100 = 2230). Потеря значимости — это когда результат представляет собой слишком маленькое дробное значение. Потеря значимости является менее серьезной проблемой, поскольку такой результат обычно рассматривают как нулевой.

Следует также отметить, что числа в форме с ПЗ, в отличие от чисел в форме с ФЗ, размещены на числовой оси неравномерно. Возможные значения в начале числовой оси расположены плотнее, а по мере движения вправо — все реже. Это означает, что многие вычисления приводят к результату, который не является точным, то есть представляет собой округление до ближайшего значения, представимого в данной форме записи.

Для формата, представленного ранее со смещенным порядком, имеет место противоречие между диапазоном и точностью. Если увеличить число битов, отведенных под порядок, расширяется диапазон представимых чисел. Однако, посколькуможет быть представлено только фиксированное число различных значений, уменьшается плотность и тем самым точность. Единственный путь увеличения как диапазона, так и точности — увеличение количества разрядов, поэтому в большинстве ВМ предлагается использовать числа в одинарном и двойном форматах. Например, число одинарного формата может занимать 32 бита, а двойного - 64 бита.

 

Рекомендуемый для всех ВМ формат представления чисел с плавающей запятой определен стандартом IEEE 754. Этот стандарт был разработан с целью облегчить перенос программ с одного процессора на другие и нашел широкое применение практически во всех процессорах и арифметических сопроцессорах.

       Стандарт определяет 32-битовый (одинарный) и 64-битовый (двойной) форматы с 8- и 11-разрядным порядком соответственно. Основанием системы счисления является 2. В дополнение, стандарт предусматривает два расширенных формата, одинарный и двойной, фактический вид которых зависит от конкретной реализации. Расширенные форматы предусматривают дополнительные биты для порядка (увеличенный диапазон) и мантиссы(повышенная точность).

 

Одинарный формат:

 

  8 битов 23 бита
Бит знака Смещенный порядок Мантисса

 

Двойной формат:

 

  11 битов 52 бита
Бит знака Смещенный порядок Мантисса

 

Здесь представлены следующие классы чисел:

 

  1. Порядки в диапазоне от 1 до 254 для одинарного формата и от 1 до 2036 — для двойного формата, используются для представления ненулевых нормализованных чисел. Порядки смещены так, что их диапазон составляет от -126 до +127 для одинарного формата и от -1022 до +1023 - для двойного формата. Нормализованное число требует, чтобы слева от двоичной запятой был единичный бит. Этот бит подразумевается, благодаря чему обеспечивается эффективная ширина мантиссы, равная 24 битам для одинарного и 53 битам — для двойного форматов.
  2. Нулевой порядок совместно с нулевой мантиссой представляют положительный или отрицательный 0, в зависимости от состояния бита знака мантиссы.
  3. Порядок, содержащий единицы во всех разрядах, совокупно с нулевой мантиссой представляют положительную или отрицательную бесконечность, в зависимости от состояния бита знака, что позволяет пользователю самому решить, считать ли это ошибкой или продолжать вычисления со значением, равным бесконечности.
  4. Нулевой порядок в сочетании с ненулевой мантиссой представляют ненормализованное число. В этом случае бит слева от двоичной точки равен 0 и фактический порядок равен -126 или -1022. Число является положительным или отрицательным в зависимости от значения знакового бита.
  5. Кодовая комбинация, в которой порядок содержит все единицы, а мантисса не равна 0, используется как признак «не числа» (NAN — Not a Number) и служит для предупреждения о различных исключительных ситуациях.

 

Символы, строки и тексты.

 

Символьная информация.

 

В общем объеме вычислительных действий все большая доля приходится на обработку символьной информации, содержащей буквы, цифры, знаки препинания, математические и другие символы. Каждому символу ставится в соответствие определенная двоичная комбинация. Совокупность возможных символов и назначенных им двоичных кодов образует таблицу кодировки. В настоящее время применяется множество различных таблиц кодировки. Объединяет их весовой принцип, при котором веса кодов цифр возрастают по мере увеличения а веса символов увеличиваются в алфавитном порядке. Это способствует упрощению обработки в ВМ.

       До недавнего времени наиболее распространенными были кодовые таблицы, в которых символы кодируются с помощью восьмиразрядных двоичных комбинаций (байтов), позволяющих представить 256 различных символов:

Код EBCDIC используется в качестве внутреннего кода в универсальных ВМ фирмы IBM. Он же известен под названием ДКОИ (двоичный код для обработки | информации).

Стандартный код ASCII – 7-миразрядный, восьмая позиция отводится для записи бита четности. Это обеспечивает представление 128 символов, включая все латинские буквы, цифры, знаки основных математических операций и знаки пунктуации. Позже появилась европейская модификация ASCII, называемая Latin 1 (стандарт ISO 8859-1). В ней «полезно» используются все 8 разрядов. Дополнительные комбинации (коды 128-255) в новом варианте отводятся для представления специфических букв алфавитов западно-европейских языков, символов псевдографики, некоторых букв греческого алфавита, а также ряда математических и финансовых символов. Именно эта кодовая таблица считается мировым стандартом де-факто, который применяется с различными модификациями во всех странах. В зависимости от использования кодов 128-255 различают несколько вариантов стандарта ISO 8859 (ISO 8859-N, где N от 1 до 16).

Хотя код ASCII достаточно удобен, он все же слишком тесен и не вмещает множества необходимых символов. По этой причине в 1993 году консорциумом компаний Apple Computer, Microsoft, Hewlett-Packard, DEC и IBM был разработан 16-битовый, стандарт ISO 10646, определяющий универсальный набор символов (UCS, Universal Character Set). Новый код, известный под названием Unicode, позволяет задать до 65 536 символов, то есть дает возможность одновременно представить символы всех основных «живых» и «мертвых» языков. Для букв русского языка выделены коды 1040-1093.

В «естественном» варианте кодировки Unicode, известном как UCS-2, каждый символ описывается двумя последовательными байтами m и n, так что номеру символа соответствует численное значение 256 x m + n. Таким образом, кодовый номер представлен числом. Наряду с UCS-2 в рамках Unicode существуют еще несколько вариантов кодировки, основные из которых UTF-8 и UTF-7.

В кодировке UTF-8 коды символов меньшие, чем 128, представляются одним байтом. Все остальные коды формируются по более сложным правилам. В зависимости от символа его код может занимать от двух до шести байтов, причем старший бит каждого байта всегда имеет единичное значение. Иными словами, значение байта лежит в диапазоне от 128 до 255. Ноль в старшем бите байта означает, что код занимает один байт и совпадает по кодировке с ASCII.

Стандарт Unicode обратно совместим с кодировкой ASCII, однако если в ASCII для представления схожих по виду символов (минус, тире, знак переноса) применялся общий код, в Unicode каждый из этих символов имеет уникальную кодировку.

 

Строки и текст.

 

Строки - это непрерывная последовательность битов, байтов, слов или двойных слов. Битовая строка может начинаться в любой позиции байта и содержать до 1 + 232 бит. Байтовая строка может состоять из байтов, слов или двойных слов. Длина такой строки варьируется от нуля до 232 - 1 байт (4 Гбайт). Приведенные цифры характерны для превалирующих в настоящее время 32-разрядных ВМ.

Если байты байтовой строки представляют собой коды символов, то говорят о текстовой строке. Поскольку длина текстовой строки может меняться в очень широких пределах, то для указания конца строки в последний байт заносится код-ограничитель - обычно это нули во всех разрядах байта. Иногда вместо ограничителя длину строки указывают числом, расположенным в первом байте (двух) строки.

 

Логические данные.

 

Элементом логических данных является логическая (булева) переменная, которая может принимать лишь два значения: «истина» или «ложь». Кодирование логического значения принято осуществлять битом информации: единицей кодируют истинное значение, нулем — ложное. Как правило, в ВМ оперируют наборами логических переменных длиной в машинное слово. Обрабатываются такие слова с помощью команд логических операций (И, ИЛИ, НЕ и т. д.), при этом все биты обрабатываются одинаково, но независимо друг от друга, то есть никаких переносов между разрядами не возникает.

 

Битовые поля.

 

Битовое поле — это число, занимающее некоторый набор битов, напрямую не адресуемое процессором. Например: при 8-битном байте первые два поля протокола IP — версия и IHL — будут битовыми полями. На машинах с 32-битным байтом все поля IP-пакета (кроме IP-адресов отправителя и получателя) будут битовыми.

Обращение к битовым полям требует дополнительных команд процессора для маскирования и сдвига, и потому медленнее обращений к словам/байтам. Поэтому битовые поля применяются для максимально полной упаковки информации в местах, где не важна скорость доступа к информации.



Поделиться:


Читайте также:




Последнее изменение этой страницы: 2021-06-14; просмотров: 103; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 52.14.224.197 (0.118 с.)