Чтобы решить эту задачу, необходимо знать, как числа представлены в памяти компьютера. Для целых чисел в 2-байтовой ячейке используются разные системы кодирования, например, прямой, обратный и дополнительный код. Обычно используется дополнительный код (Two's complement), так как он позволяет легко выполнять арифметические операции.
1) Число 2101:
Двоичная форма: Чтобы представить положительное число 2101 в двоичном виде, нужно перевести его из десятичной в двоичную систему счисления. Делим число на 2, записывая остатки:
2101 / 2 = 1050 остаток 1
1050 / 2 = 525 остаток 0
525 / 2 = 262 остаток 1
262 / 2 = 131 остаток 0
131 / 2 = 65 остаток 1
65 / 2 = 32 остаток 1
32 / 2 = 16 остаток 0
16 / 2 = 8 остаток 0
8 / 2 = 4 остаток 0
4 / 2 = 2 остаток 0
2 / 2 = 1 остаток 0
1 / 2 = 0 остаток 1
Чтение остатков снизу вверх дает: 100000110101
.
Для 2-байтовой ячейки (16 бит) дополняем нулями слева: 0000100000110101
.
Шестнадцатеричная форма: Разбиваем двоичное число на группы по 4 бита: 0000 1000 0011 0101
. Переводим каждую группу в шестнадцатеричный вид: 0835
.
2) Число -2101:
Двоичная форма: Для представления отрицательного числа используем дополнительный код. Сначала находим двоичное представление положительного числа 2101: 0000100000110101
. Затем инвертируем все биты (меняем 0 на 1 и 1 на 0) и прибавляем 1:
Инверсия: 1111011111001010
, прибавляем 1: 1111011111001011
.
Шестнадцатеричная форма: Разбиваем двоичное число на группы по 4 бита: 1111 0111 1100 1011
. Переводим каждую группу в шестнадцатеричный вид: F7CB
.
3) Число F840:
Это шестнадцатеричная форма, чтобы восстановить число, нужно сначала перевести её в двоичную форму:
F840
в двоичной форме: 1111 1000 0100 0000
.
Проверяем старший бит (знак числа). Он равен 1, значит число отрицательное и представлено в дополнительном коде. Чтобы найти само число, нужно сначала инвертировать все биты и прибавить 1:
Инверсия: 0000 0111 1011 1111
, прибавляем 1: 0000 0111 1100 0000
.
Переводим полученное двоичное число в десятичное:
2^8 + 2^7 + 2^6 = 256 + 128 + 64 = 448
Таким образом, число F840 в десятичной системе это -448.