Загрузка данных


Задание 1

Условие: Среди приведённых ниже трёх чисел, записанных в различных системах счисления, найти число, в двоичной записи которого наибольшее количество единиц. В ответе записать количество единиц в двоичной записи этого числа.
Числа: 5E4₁₆, 511₁₀, 1111₈

Решение:
Переведём все числа в двоичную систему счисления:

1. 5E4₁₆:
   · 5 = 0101
   · E = 1110 (14 в десятичной)
   · 4 = 0100
   · Итого: 010111100100₂. Количество единиц: 5.
2. 511₁₀:
   · 511 = 256 + 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 111111111₂ (9 единиц).
   · Количество единиц: 9.
3. 1111₈:
   · 1 = 001, 1 = 001, 1 = 001, 1 = 001
   · Итого: 001001001001₂. Количество единиц: 4.

Наибольшее количество единиц (9) у числа 511₁₀.
Ответ на задание 1: 9

---

Задание 2

Условие: Посчитать произведение между полученным числом в первой задаче (511₁₀ или 111111111₂) и числом 1010011₂. Расчёты производить в двоичной системе счисления. Затем к числу прибавить дробную часть числа 0.011011₂ и полученный результат записать в экспоненциальном виде 32-битного формата IEEE-754 (подробно расписав перевод).

Решение:

1. Умножение в двоичной системе:
   · 111111111₂ (это 511)
   · 1010011₂ (это 83)
   · Умножим в столбик:
     ```
           111111111
         x   1010011
         -------------
           111111111   (511 * 1)
          111111111    (511 * 1, сдвиг на 1)
         000000000     (511 * 0)
        000000000      (511 * 0)
       111111111       (511 * 1, сдвиг на 4)
      000000000        (511 * 0)
     111111111         (511 * 1, сдвиг на 6)
     ------------------
     1010010110101101
     ```
   · Произведение: 1010010110101101₂. (Проверка: 511 * 83 = 42413. 42413 в двоичной = 1010010110101101).
2. Прибавление дробной части 0.011011₂:
   · 1010010110101101₂ + 0.011011₂ = 1010010110101101.011011₂
3. Перевод в формат IEEE-754 (32 бита):
   · Знак (1 бит): Число положительное, значит 0.
   · Нормализация: Сдвигаем запятую влево на 15 позиций, чтобы получить вид 1.xxxxx * 2^p.
     · 1.010010110101101011011₂ * 2¹⁵
   · Экспонента (8 бит): Смещение для 32-битного формата = 127.
     · p = 15 + 127 = 142
     · Переводим 142 в двоичную: 142₁₀ = 10001110₂
   · Мантисса (23 бита): Берём дробную часть нормализованного числа и дополняем нулями до 23 бит.
     · Дробная часть: 010010110101101011011
     · Дополняем до 23 бит: 01001011010110101101100
   · Итоговый вид:
     · 0 | 10001110 | 01001011010110101101100
   · В шестнадцатеричном виде (для проверки):
     · 0100 0111 0010 0101 1010 1101 0110 1100 = 4725AD6C₁₆

Ответ на задание 2: 0 10001110 01001011010110101101100 (или 4725AD6C₁₆)

---

Задание 3

Условие: Перевести числа из десятичной системы счисления в указанную.

Решение:

1. 888₁₀ -> X₈
   · 888 / 8 = 111 (ост. 0)
   · 111 / 8 = 13 (ост. 7)
   · 13 / 8 = 1 (ост. 5)
   · 1 / 8 = 0 (ост. 1)
   · Записываем остатки в обратном порядке: 1570₈
   · Ответ: 1570₈
2. 3961₁₀ -> X₁₆
   · 3961 / 16 = 247 (ост. 9)
   · 247 / 16 = 15 (ост. 7)
   · 15 / 16 = 0 (ост. 15, что соответствует F)
   · Записываем остатки в обратном порядке: F79₁₆
   · Ответ: F79₁₆
3. 513.225₁₀ -> X₂
   · Целая часть (513):
     · 513 / 2 = 256 (ост. 1)
     · 256 / 2 = 128 (ост. 0)
     · 128 / 2 = 64 (ост. 0)
     · 64 / 2 = 32 (ост. 0)
     · 32 / 2 = 16 (ост. 0)
     · 16 / 2 = 8 (ост. 0)
     · 8 / 2 = 4 (ост. 0)
     · 4 / 2 = 2 (ост. 0)
     · 2 / 2 = 1 (ост. 0)
     · 1 / 2 = 0 (ост. 1)
     · Целая часть: 1000000001₂
   · Дробная часть (0.225):
     · 0.225 * 2 = 0.45 (целая 0)
     · 0.45 * 2 = 0.9 (целая 0)
     · 0.9 * 2 = 1.8 (целая 1)
     · 0.8 * 2 = 1.6 (целая 1)
     · 0.6 * 2 = 1.2 (целая 1)
     · 0.2 * 2 = 0.4 (целая 0)
     · (можно продолжать, но обычно ограничиваются 5-6 знаками)
     · Дробная часть: 001110₂
   · Ответ: 1000000001.001110₂

---

Задание 4

Условие: Посчитать сумму между полученным числом в первой задаче (511) и числом -451 (минус 451), используя дополнительный код.

Решение:

1. Перевод в двоичную систему (возьмём 16-битную сетку для удобства):
   · 511₁₀ = 0000000111111111₂
   · 451₁₀ = 0000000111000011₂ (проверка: 256+128+64+2+1 = 451)
2. Нахождение дополнительного кода для -451:
   · Прямой код: 0000000111000011
   · Обратный код (инвертируем все биты): 1111111000111100
   · Дополнительный код (прибавляем 1 к младшему разряду): 1111111000111101
3. Сложение в дополнительном коде:
   ```
     0000000111111111  (число 511)
   + 1111111000111101  (число -451)
   ------------------
    10000000000111100
   ```
   · Отбрасываем единицу переполнения (так как мы работаем в 16-битной сетке, а результат положительный).
   · Получаем: 0000000000111100₂
4. Перевод результата в десятичную систему:
   · 0000000000111100₂ = 32 + 16 + 8 + 4 = 60₁₀

Ответ на задание 4: 60 (в двоичной системе: 111100₂)