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

Представление чисел в компьютере

Теория

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

Ячейка – это часть памяти, вмещающая в себя информацию, доступную для обработки отдельной командой процессора.

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

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

Машинное слово, состоящее из 16 бит (2-х байт) представлено ниже на рисунке. Разряды нумеруются справа налево, начиная с 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

бит

байт

байт

Слово


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

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

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

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

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

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

Так в 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-разрядном представлении равно -2n-1.

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

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

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

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

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

Прямой код целого положительного числа может быть получен следующим образом:

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

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

Например, прямой код числа 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).