Двоичное представление информации в памяти компьютера

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

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

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

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

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;

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

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

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

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

Пример. Внутреннее представление целого отрицательного числа -17 в 8-разрядной ячейке запишется следующим образом: 1110 1111. Так как:

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

17-1=16

1610=100002

прямой код в 8-разрядной ячейке: 0001 0000;

2. заменяем все нули на единицы и единицы на нули: 1110 1111.

Ответ: 1110 1111 – внутренне двоичное представление числа (-17).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: