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

3. Компьютерное представление чисел

 

 Информация в памяти ЭВМ записывается в форме цифрового двоичного кода. С этой целью ЭВМ содержит большое количество ячеек памяти и регистров (от лат. regestum – внесенное, записанное) для хранения двоичной информации. Ячейка – это часть памяти, вмещающая в себя информацию, доступную для обработки отдельной командой процессора. Наибольшую последовательность бит, которую компьютер может обрабатывать как единое целое (содержимое ячейки памяти), называют машинным словом.

Элементарная ячейка памяти ЭВМ имеет длину 8 бит (1 байт). Каждый байт имеет свой номер (его называют адресом). Длина машинного слова зависит от разрядности процессора и может быть равной 16, 32, 64 битам и т.д. Адрес машинного слова в памяти компьютера равен адресу младшего байта, входящего в это слово.  Машинное  слово, состоящее из 16 бит (2-х байт) представлено на рис.1. Разряды нумеруются справа налево, начиная с 0. Самый левый является старшим разрядом (на рисунке  с номером 15), самый правый – младшим (на рисунке с номером 0).

 

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

 0  

1

1

0

1

1

1

0

0

1

1

0

1

1

0

1

бит

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

байт

байт

Слово

                     Рис. 2. Бит, байт, слово

 

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

-              с фиксированной запятой (точкой);

-              с плавающей запятой (точкой).

Формат с фиксированной запятой применяется к целым числам, формат с плавающей запятой  - к вещественным (действительным) числам.

 

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

 

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

Так в n-разрядной ячейке может храниться 2n различных значений целых чисел. Так в 8-разрядной ячейке может храниться 28=256 различных значений, в 16-разрядной – 216=65536 различных значений.

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

  

Целые числа без знака. Обычно занимают в памяти компьютера один или два байта. Максимальное значение целого числа без знака (положительного числа) достигается в случае, когда во всех ячейках  хранятся единицы. Для n-разрядного представления оно будет равно  . Для 8-разрядной ячейки максимальное значение целого положительного числа достигается в  случае, когда во всех ячейках хранятся единицы и равно . Минимальное число соответствует восьми нулям, хранящимся в восьми битах ячейки памяти, и равно нулю. Следовательно, в 8-разрядной ячейке диапазон изменения целых  чисел без знака: от 0 до 255. В 16-разрядной ячейке - от 0 до 65535 (всего 65536 значений).

Так, число 111000012 будет храниться в 8-разрядной ячейке памяти следующим образом:

1

1

1

0

0

0

0

1

 

В 16-разрядном представлении число 200610=111110101102 будет храниться следующим образом:

0

0

0

0

0

1

1

1

1

1

0

1

0

1

1

0

 

   Итак, чтобы получить внутреннее представление целого числа без знака А, хранящегося в n-разрядном машинном слове, необходимо:

1)   перевести число А в двоичную систему счисления;

2)   полученный результат дополнить слева незначащими нулями до n разрядов.

   

Целые числа со  знаком: прямой, обратный и дополнительный коды. Целые числа со знаком обычно занимают в памяти компьютера один, два или четыре байта.  Для хранения целых чисел со знаком старший (левый) разряд в машинном слове отводится под знак числа (если число положительное, то в знаковый разряд записывается ноль, если число отрицательное – единица). Ровно половина из всех 2n  чисел будут отрицательными; учитывая необходимость нулевого значения, положительных будет на единицу меньше.

  

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

  

Диапазоны значений целых чисел со знаком:

         в 8-разрядной ячейке: от -128 до 127;

         в 16-разрядной ячейке: от -32 768 до 32 767;

         в 32-разрядной ячейке: от -2 147 483 648 до 2 147 483 647.

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

   Прямой код целого положительного числа может быть получен следующим образом: число переводится в двоичную систему счисления, а затем его двоичную запись слева дополняют необходимым количеством нулей в соответствии с разрядностью машинного слова. Например, прямой код числа 3710=1001012в 16-разрядной ячейке будет иметь вид 0000000000100101.

   Для записи внутреннего представления целого число со знаком (-А) необходимо:

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

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

3)  к полученному обратному коду прибавить единицу. Получим дополнительный код целого числа со знаком.

 

   Например, внутреннее представление целого отрицательного числа -1607 в 16-разрядной ячейке запишется следующим образом: 1111 1001 1011 1001. Так как:

1)     а) -1607=160710=110010001112

   б) прямой код в 16-разрядной ячейке:

          0000 0110 0100 0111

2)  обратный код:

          1111 1001 1011 1000

   3) дополнительный код (результат прибавления 1):

           1111 1001 1011 1001 – это внутренне двоичное представление числа (-1607).