- •Введение
- •Единицы измерения информации
- •Задачи на расчёт информационного объёма текстовых сообщений
- •Задачи на расчет информационного объёма растрового графического изображения
- •Задачи на расчет объёма звуковой информации
- •Содержательный подход к измерению информации
- •Позиционные системы счисления
- •Перевод из одной системы счисления в другие Перевод целых десятичных чисел
- •Перевод дробных десятичных чисел
- •Перевод числа из какой-либо позиционной системы в десятичную систему счисления
- •Взаимосвязь двоичной, восьмеричной и шестнадцатеричной систем счисления
- •Арифметические операции в позиционных системах счисления
- •Представление чисел в компьютере
- •Представление целых чисел в формате с фиксированной запятой
- •Представление вещественных чисел в формате с плавающей запятой
- •Список литературы Основная литература
- •Дополнительная литература
Представление чисел в компьютере
Теория
Информация в памяти ЭВМ записывается в форме цифрового двоичного кода. С этой целью ЭВМ содержит большое количество ячеек памяти и регистров (от лат. 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.
Для представления отрицательного числа используется дополнительный код. Дополнительный код положительного числа совпадает с его прямым кодом.
Прямой код целого положительного числа может быть получен следующим образом:
число переводится в двоичную систему счисления;
затем его двоичную запись слева дополняют необходимым количеством нулей в соответствии с разрядностью машинного слова.
Например, прямой код числа 3710=1001012 в 16-разрядной ячейке будет иметь вид 0000000000100101.
Для записи внутреннего представления целого число со знаком (-А) необходимо:
модуль числа записать в прямом коде в n двоичных разрядах;
получить обратный код числа, для этого значения всех бит инвертировать (все единицы заменить на нули, все нули заменить на единицы);
к полученному обратному коду прибавить единицу. Получим дополнительный код целого числа со знаком.
Например, внутреннее представление целого отрицательного числа -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).
