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

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

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

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

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

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

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

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

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

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

  1. а) |-1607|=160710=110010001112;

б) прямой код в 16-разрядной ячейке: 0000 0110 0100 0111;

  1. обратный код: 1111 1001 1011 1000;

  2. дополнительный код (результат прибавления 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;

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

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

Задание 1 (перевод чисел из одной системы счисления в другую)

Дано: и . Какое из чисел с, записанных в двоичной системе счисления, удовлетворяет неравенству a < c < b?

1) 110110012 2) 110111002 3) 110101112 4) 110110002

Общий подход:

перевести все числа (и исходные данные, и ответы) в одну (любую!) систему счисления и сравнить.

Решение 1 (через десятичную систему):

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

110110012 = 217, 11011100 2= 220, 110101112 = 215, 110110002=216

  1. очевидно, что между числами 215 и 217 может быть только 216

  2. таким образом, верный ответ – 4

Решение 2 (через двоичную систему):

  1. (каждая цифра шестнадцатеричной системы отдельно переводится в четыре двоичных – тетраду);

  2. (каждая цифра восьмеричной системы отдельно переводится в три двоичных – триаду, старшие нули можно не писать);

  3. теперь нужно сообразить, что между этими числами находится только двоичное число 110110002 – это ответ 4.

Решение 3 (через восьмеричную систему):

  1. (сначала перевели в двоичную систему, потом двоичную запись числа разбили на триады справа налево, каждую триаду перевели отдельно в десятичную систему, так как для чисел от 0 до 7 их восьмеричная запись совпадает с десятичной);

  2. , никуда переводить не нужно;

  3. переводим в восьмеричную систему все ответы:

110110012 = 011 011 0012 = 3318 (разбили на триады справа налево, каждую триаду перевели отдельно в десятичную систему, как в п. 1)

11011100 2= 3348, 110101112 = 3278, 110110002=3308

  1. в восьмеричной системе между числами 3278 и 3318 может быть только 3308

  2. таким образом, верный ответ – 4 .

Решение 4 (через шестнадцатеричную систему):

  1. никуда переводить не нужно;

  2. (сначала перевели в двоичную систему, потом двоичную запись числа разбили на тетрады справа налево, каждую тетраду перевели в шестнадцатеричную систему; при этом тетрады можно переводить из двоичной системы в десятичную, а затем заменить все числа, большие 9, на буквы – A, B, C, D, E, F);

  3. переводим в шестнадцатеричную систему все ответы:

110110012 = 1101 10012 = D916 (разбили на тетрады справа налево, каждую тетраду перевели отдельно в десятичную систему, все числа, большие 9, заменили на буквы – A, B, C, D, E, F, как в п. 1)

11011100 2= DC16, 110101112 = D716, 110110002=D816

  1. в шестнадцатеричной системе между числами D716 и D916 может быть только D816

  2. таким образом, верный ответ – 4 .