Загрузка данных
Задание 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₂)