Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
04.doc
Скачиваний:
151
Добавлен:
11.03.2016
Размер:
287.74 Кб
Скачать

4. Кодирование (представление) данных в эвм

В главах 2 и 3 было показано, что самым удобным и эффективным является использо­вание в вычислительной технике двоичного кода, то есть набора символов, алфавита, состоящего из пары цифр {0,1}. Поскольку двоичный код используется для хранения информации в вычислительных машинах, его еще называют машинным кодом.

В данной главе рассмотрены форматы хранения данных различного вида.

Формат данных – это строго определенный, исчерпывающе полный набор правил кодирования той или иной разновидности данных.

4.1. Представление целых чисел в компьютере

4.1.1. Форматы хранения целых чисел без знака

Целые числа могут представляться в компьютере со знаком или без знака.

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

Диапазон значений, который может храниться в конкретном формате, легко определяется. Например, для однобайтового формата это значения от 00000000 до 11111111, что составляет в десятичной системе диапазон от 0 до (28-1), т.е. от 0 до 255. Аналогично определяются диапазоны значений для других форматов (табл. 4.1).

Таблица 4.1. Диапазоны значений целых чисел без знака

Формат целого числа без знака в байтах

Диапазон

запись с порядком

в обычной записи

1

0 ... 28-1

0 ... 255

2

0 ... 216-1

0 … 65535

4

0 ... 232-1

0 … 4294967296

Пример 4.1. Представим число 65 в однобайтовом и двухбайтовом форматах хранения беззнаковых целых чисел. Переведем 65 в двоичную систему счисления: 6510 = 1101012.

а) в однобайтовом формате оно будет выглядеть так:

Биты числа

0

0

1

1

0

1

0

1

Номер разряда

7

6

5

4

3

2

1

0

б) в двухбайтовом формате:

Биты числа

0

0

0

0

0

0

0

0

0

0

1

1

0

1

0

1

Номер разряда

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

 

4.1.2. Форматы хранения целых чисел со знаком

Целые числа со знаком обычно также, как и беззнаковые, занимают в памяти компьютера один, два или четыре байта, при этом самый левый (старший) разряд содержит информацию о знаке числа. Знак «+» кодируется нулем, а «-» единицей. Таким образом, под само число отводится 7 разрядов с нулевого до шестого.

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

Таблица 4.2. Диапазоны значений целых чисел со знаком

Формат целого числа со знаком в байтах

Диапазон

Запись с порядком

Обычная запись

1

-27... 27-1

-128 ... 127 

2

-215... 215-1

-32768 ... 32767

4

-231... 231-1

-2147483648 ... 2147483647

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

Рассмотрим перечисленные форматы на примере однобайтового представления.

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

Пример 4.2.

Число 4510 = 1011012. Т.к. число положительное, то в старшем разряде 0. Число 45 в прямом, обратном и дополнительном кодах выглядит одинаково:

Биты числа

0

0

1

0

1

1

0

1

Номер разряда

7

6

5

4

3

2

1

0

 

Отрицательные числав прямом, обратном и дополнительном кодах имеют разное изображение.

  • Прямой код. В знаковый разряд помещается цифра 1, а в разряды цифровой части числа — двоичный код его абсолютной величины.

Пример 4.3

Число -4510 = -1011012. Т.к. число отрицательное, то в старшем разряде 1:

Биты числа

1

0

1

0

1

1

0

1

Номер разряда

7

6

5

4

3

2

1

0

  • Обратный кодполучается инвертированием всех цифр двоичного кода абсолютной величины числа: нули заменяются единицами, а единицы — нулями. В знаковом разряде ставится 1.

Пример 4.3 (продолжение 1)

Абсолютная величина: 0101101, после инвертирования: 1010010. Получаем обратный код числа:

Биты числа

1

1

0

1

0

0

1

0

Номер разряда

7

6

5

4

3

2

1

0

  • Дополнительный кодполучается из обратного кода путем прибавления единицы к его младшему разряду.

Пример 4.3 (продолжение 2)

Мы уже имеем обратный код, прибавим к нему 1, получим дополнительный код числа -4510:

Биты числа

1

1

0

1

0

0

1

1

Номер разряда

7

6

5

4

3

2

1

0

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]