Ниже подробное решение задач §1.2. Я ориентируюсь на общий уровень средней школы и на цель «Понять» (поясняю шаги и принципы).
- Как в памяти компьютера представляются целые положительные и отрицательные числа?
Беззнаковое представление (unsigned):
- Число записывается только в разрядах без какого-либо знака. Значение равно двоичному числу, полученному в этих разрядах.
- Для p-разрядного целого беззнакового максимальное значение равно 2^p − 1. Минимальное — 0.
- Примеры: в 8-битном формате 00000000 = 0, 11111111 = 255.
Знаковое представление (с использованием старшего разряда под знак):
- Здесь старший разряд (самый левый) служит знаком: 0 — положительное число, 1 — отрицательное.
- Варианты представления различаются способом кодирования значения в остальных разрядах.
- Самые распространённые варианты:
- Прямой код (signed magnitude, прямой код): знак в старшем разряде, остальные разряды — число по модулю. Например, в 8-битном формате:
- +5: 0 0000101 = 00000101
- −5: 1 0000101 = 10000101
- Дополнительный код (two's complement): отрицательные числа закодированы так, чтобы операция вычитания превращалась в сложение. Простой способ понять: отрицательное число получают как двоичное дополнение к модулю. Пример в 8 битах:
- +5: 00000101
- −5: 11111011 (поскольку 256 − 5 = 251)
- Прямой код (signed magnitude, прямой код): знак в старшем разряде, остальные разряды — число по модулю. Например, в 8-битном формате:
- В машинной архитектуре чаще всего применяется дополнительный код, потому что он упрощает арифметику и исключает особый случай перегруза/нуль-символа как в прямом коде.
Представление вещественных чисел (кратко):
- В памяти число записывается в виде научной записи A = ± m · q^p, где m — мантисса, q — основание системы счисления (обычно 2 в компьютерах), p — порядок.
- 32 или 64 разряда разделяются на области под знак мантиссы, знак порядка, сам порядок и мантиссу. Это задаёт диапазон и точность представления.
- Примером может быть схема с плавающей точкой (IEEE-754 стиль): знак, порядок, мантисса.
- Зачем существует отдельное «особое» представление целых чисел?
- Беззнаковое целое полезно там, где нет отрицательных значений: адреса памяти, счётчики, размеры изображений, временные/дате-числа и т. п.
- Знаковое представление позволяет хранить и отрицательные числа, но требует разрядов под знак и особые способы кодирования.
- Преимущество двухстарочных подходов: прямой код прост для некоторых задач, но два’s complement удобнее для реализации арифметики и сравнения; вычитание становится сложением с отрицательным числом.
- В целом наличие разных форматов позволяет:
- экономить память (разрядность),
- точно контролировать диапазон и ошибки переполнения,
- оптимизировать аппаратную реализацию арифметики.
- Пример задания: число 63 в беззнаковом 8-разрядном формате
- 63 в десятичной системе = двоичное 00111111 (8 разрядов).
- Ответ: 00111111_2.
- Представьте число 63_10 в беззнаковом 8-разрядном формате.
- Как выше: 63_10 → 00111111_2.
- Найдите десятичные эквиваленты чисел по их прямым кодам в 8-разрядном формате со знаком: a) 01001100; б) 00010101.
- Здесь старший разряд — знак (0 положительное, 1 отрицательное), остаётся 7 разрядов для величины.
- a) 0 1001100: знак 0 (положительное), величина 1001100_2 = 76.
- Значение: +76.
- b) 0 0010101: знак 0, величина 0010101_2 = 21.
- Значение: +21.
- Ответ: a) +76, б) +21.
- Какие из чисел 44_10, 101010_2, 256_10 можно сохранить в 8-разрядном формате?
- Максимум беззнакового 8-разрядного целого: 2^8 − 1 = 255.
- 44_10 = 44, подходит.
- 101010_2 = 42_10, подходит.
- 256_10 = 256, не помещается (выходит за 255).
- Ответ: можно сохранить 44 и 42; 256 нельзя.
- Запишите следующие числа в естественной форме: a) 0,3800456 · 10^2; б) 0,245 · 10^-3; в) 1,256900E+5; г) 9,569120E-3.
- a) 0,3800456 · 10^2 = 38,00456.
- б) 0,245 · 10^-3 = 0,000245.
- в) 1,256900E+5 = 1,256900 × 10^5 = 125690.
- (поскольку 1,256900 × 100000 = 125690.0)
- г) 9,569120E-3 = 9,569120 × 10^-3 = 0,00956912.
- Ответ: a) 38,00456; б) 0,000245; в) 125690; г) 0,00956912.
- Запишите число 2010,010210 пятью различными способами в экспоненциальной форме.
- Правило: мантисса должна быть в диапазоне [1,10). Экспонента — целое число. Можно варьировать число знаков в мантиссе, не нарушив значение.
- Базовый разложение: 2010,010210 = 2,010010210 × 10^3.
- Варианты (разные числа цифр после запятой в мантиссе, но с тем же числом):
- 2,010010210 × 10^3
- 2,01001021 × 10^3
- 2,0100102100 × 10^3
- 2,01001021000 × 10^3
- 2,010010210000 × 10^3
- Все эти формы эквивалентны и дают 2010,010210.
- Запишите следующие числа в экспоненциальной форме с нормализованной мантиссой (правильная дробь, после запятой должна быть хотя бы одна ненулевая цифра): a) 217,93410; б) 7532110; c) 0,0010110.
- a) 217,93410 → мантисса должна быть в диапазоне [1,10). Перемещаем запятую на 2 знака влево: 2,1793410 × 10^2.
- б) 7 532110 (то есть 7532110) → мантисса 7,532110 × 10^6 (перемещаем запятую на 6 знаков вправо).
- в) 0,0010110 → перемещаем запятую три места вправо: 1,0110 × 10^-3.
- Ответ:
- a) 2,1793410 × 10^2
- б) 7,532110 × 10^6
- в) 1,0110 × 10^-3
- Изобразите схему, связывающую основные понятия, рассмотренные в параграфе.
- Можно представить так (устно, без графики):
- Память компьютера состоит из ячеек, в которых хранятся биты (0 или 1).
- Биты группируются в байты (8 бит).
- Целые числа можно представлять двумя основными способами:
- Беззнаковое представление: число = двоичное значение байтов.
- Со знаком: прямой код (знак в старшем разряде, остаток — величина по модулю) или дополнительный код (дальше по арифметике работает как обычное двоичное число, отрицательные — как дополняющие к нулю значения).
- Вещественные числа представляются как A = ± m · q^p, где m — мантисса, q — основание системы счисления (обычно 2 в компьютерах), p — порядок. В памяти обычно выделяются поля под знак, порядок и мантиссу (плавающая точка).
- Ключевые понятия: разряд/бит, беззнаковое представление, знаковое представление (прямой код), дополнительный код, мантисса, порядок, экспоненциальная форма, нормализация мантисс.
Если понадобится, могу привести дополнительные примеры и небольшие упражнения по каждому виду представления (например, перевести ряд чисел в двоичную форму для нужного разряда, показать преобразование в дополнительный код, или разобрать примеры с плавающей точкой на простом 8-или-16-разрядном формате).