Представление числовой информации - Кодирование информации - Краткий теоретический справочник

Информатика и ИКТ подготовка к ЕГЭ

Представление числовой информации - Кодирование информации - Краткий теоретический справочник

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

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

Для кодирования целых чисел от 0 до 255 достаточно иметь 8 разрядов двоичного кода (8 бит).


Десятичное число

Двоичный код

0

0000 0000

1

0000 0001

2

0000 0010

...

...

254

1111 1110

255

1111 1111


Для кодирования целых чисел от 0 до 65 535 требуется шестнадцать бит; 24 бита позволяют закодировать более 16,5 миллионов разных значений.

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

Максимальное значение целого неотрицательного числа достигается в случае, когда во всех ячейках стоят единицы. Если под представление целого положительного числа отведено N бит, то максимальное значение будет равно 2N — 1.

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


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

Максимальное значение целого числа со знаком достигается в случае, когда в старшем разряде стоит 0, а во всех остальных ячейках стоят единицы. Если под представление целого числа со знаком отведено N бит, то максимальное значение будет равно 2N-1 - 1. Поскольку количество возможных значений в N битах равно 2N - 1, то в случае представления целых чисел со знаком количество отрицательных значений на единицу больше количества положительных значений. Такая ситуация связана с тем, что для представления нуля во всех ячейках стоят нули. Если же в знаковом разряде стоит единица, а во всех остальных разрядах — нули, то это представление соответствует отрицательному (как правило, наименьшему) числу.

Пример. Запишем вид числа -58 в памяти компьютера в 8-разрядном представлении.

Так как 5810 = 1110102, то число в памяти компьютера будет представлено следующим образом:

image17

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


3. Другой способ представления целых чисел — дополнительный код.

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

1) записываем прямой код модуля числа;

2) инвертируем его (заменяем единицы нулями, нули единицами);

3) прибавляем к инверсному коду единицу.

Пример. Запишем дополнительный код числа —58 в 8-разрядном представлении.

1) Прямой код числа 58 есть 00111010; 2) инверсный (обратный) код 11000101; 3) дополнительный код 11000110.


4. При получении числа по его дополнительному коду необходимо определить его знак. Если число окажется положительным, то переводим его код в десятичную систему счисления.

В случае отрицательного числа необходимо выполнить следующий алгоритм;

1) вычитаем из кода числа 1;

2) инвертируем код;

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

4) полученное число записываем со знаком минус.

Пример 1. Запишем число, соответствующее дополнительному коду 00110110.

Так как в старшем разряде данного числа нуль, то результат будет положительным. После перевода числа из двоичной системы счисления в десятичную получаем 54.

Пример 2. Запишем число, соответствующее дополнительному коду 10110110.

Так как в старшем разряде данного числа единица, то результат будет отрицательным. Вычитаем из кода единицу: 10110110 — 1 = 10110101. Инвертируем код: 01001010. Переводим в десятичную систему счисления 010010102 = 7410. Полученное число записываем со знаком минус: —7410.






Для любых предложений по сайту: [email protected]