Перейти к содержанию

Представление чисел в позиционных системах счисления. Арифметические операции в позиционных системах счисления

Введение

Системы счисления — это совокупность правил и символов, с помощью которых записываются числа. Они лежат в основе всей математики и вычислительной техники. Без понимания систем счисления невозможно освоить принципы работы компьютеров, так как вся цифровая информация внутри ЭВМ представляется и обрабатывается в виде чисел, чаще всего в двоичной системе.

В повседневной жизни мы используем десятичную систему счисления, которая исторически сложилась благодаря наличию десяти пальцев у человека. Однако для нужд вычислительной техники удобнее другие основания:

  • двоичная — используется непосредственно в работе процессора и памяти;
  • восьмеричная и шестнадцатеричная — применяются для удобного представления больших двоичных чисел.

Понимание позиционных систем счисления позволяет:

  • понимать, как компьютеры хранят и обрабатывают данные;
  • выполнять перевод чисел между различными системами;
  • уверенно выполнять арифметические операции в двоичном, восьмеричном и шестнадцатеричном кодах;
  • анализировать ошибки и результаты при программировании и проектировании цифровых схем.

Позиционные и непозиционные системы счисления

Системы счисления делятся на два основных типа — позиционные и непозиционные. Они различаются тем, влияет ли положение (позиция) цифры в числе на её значение.

Непозиционные системы счисления

  • В непозиционных системах значение цифры не зависит от её места в записи числа.
  • Каждая цифра (символ) обозначает фиксированное количество, и при записи числа просто суммируются значения всех символов.
  • Пример: римская система счисления:
  • $I = 1, V = 5, X = 10, L = 50, C = 100, D = 500, M = 1000$
  • $Число XIII = 10 + 1 + 1 + 1 = 13$
  • Особенности:
  • используется ограниченное количество символов;
  • не используется ноль;
  • выполнение арифметических операций затруднено (например, умножение и деление очень неудобны).
  • Другие примеры: древнеегипетская, шумерская, майяская системы.

Позиционные системы счисления

  • В позиционных системах значение цифры зависит от её позиции (разряда).
  • Каждая позиция имеет «вес» — это степень основания системы.
  • Основание системы (q) — количество различных символов (цифр), используемых для записи чисел.
  • Примеры:
  • Двоичная (основание 2): $0, 1$
  • Восьмеричная (основание 8): $0–7$
  • Десятичная (основание 10): $0–9$
  • Шестнадцатеричная (основание 16): $0–9, A–F (A=10, B=11, ..., F=15)$

Особенности позиционных систем:

  • В позиционных системах есть цифра 0, которая показывает, что в разряде нет значения.
  • С ними легко считать — удобно выполнять сложение, вычитание, умножение и деление.
  • С их помощью можно записать любые числа — как целые, так и дробные.

Перевод чисел между системами счисления

Перевод чисел между системами счисления — это процесс преобразования чисел из одной системы с основанием в другую систему с основанием. Этот навык необходим для понимания работы ЭВМ, так как внутри компьютеров данные могут представляться в двоичной, восьмеричной и шестнадцатеричной формах.

Перевод из любой системы в десятичную

  • Каждая цифра числа умножается на основание системы в степени, равной её позиции (считая справа налево, начиная с 0).
  • Полученные значения складываются.

$N = aₙ × qⁿ + aₙ₋₁ × qⁿ⁻¹ + ... + a₁ × q¹ + a₀ × q⁰$

  • $aᵢ$ — цифры числа
  • $q$ — основание системы (2, 8, 10, 16 и т.д.)

Пример 1 (двоичная система):

$1011₂ = 1×2³ + 0×2² + 1×2¹ + 1×2⁰= 8 + 0 + 2 + 1= 11₁₀$

Пример 2 (шестнадцатеричная система):

$2A₁₆ = 2×16¹ + 10×16⁰= 32 + 10= 42₁₀$

Перевод из десятичной в любую систему

  • Делить число на основание системы и записывать остатки.
  • Повторять, пока частное не станет нулём.
  • Остатки записываются в обратном порядке.

Пример 1: $25_{10}$ → двоичная:

  • $25 / 2 = 12 (ост.1)$
  • $12 / 2 = 6 (ост.0)$
  • $6 / 2 = 3 (ост.0)$
  • $3 / 2 = 1 (ост.1)$
  • $1 / 2 = 0 (ост.1)$

Результат: $11001₂$

Пример 2: $255₁₀$ → шестнадцатеричная:

  • $255 ÷ 16 = 15 (остаток 15 → F)$
  • $15 ÷ 16 = 0 (остаток 15 → F)$

Результат: $FF₁₆$

Перевод дробных чисел

  • Целую часть переводим как обычно — делим на основание и записываем остатки.
  • Дробную часть умножаем на основание и записываем целые части результатов по порядку, пока не получится 0 или нужное количество знаков.
  • Соединяем обе части через запятую (точку).

Пример: $10.625_{10}$ → двоичная:

  • Целая часть: $10₁₀ → 1010₂$
  • Дробная часть:
  • $0.625 × 2 = 1.25 → 1$
  • $0.25 × 2 = 0.5 → 0$
  • $0.5 × 2 = 1.0 → 1$

Результат: $1010.101₂$

Перевод между степенными системами через двоичную

Чтобы быстро перевести числа из восьмеричной в шестнадцатеричную (и наоборот), удобно использовать двоичную систему как промежуточную:

  • Каждая восьмеричная цифра = 3 двоичных бита
  • Каждая шестнадцатеричная цифра = 4 двоичных бита

Алгоритм:

  1. Каждую цифру числа заменить её двоичным эквивалентом (3 или 4 бита).
  2. Полученные биты объединить в одну двоичную запись.
  3. При необходимости сгруппировать биты обратно по 3 или 4 и перевести в нужную систему.

Пример: $7B₁₆$ → двоичная:

  • $7 = 0111, B = 1011 → 0111 1011₂$

Пример: $745₈$ → двоичная:

  • $7 = 111, 4 = 100, 5 = 101 → 111 100 101₂$

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

  • Для любых нестепенных систем сначала удобно перевести в десятичную, затем в нужную.
  • Это универсальный и надёжный способ.

Распространённые ошибки

  • Запись остатков не в обратном порядке при переводе из десятичной.
  • Путаница с буквами A–F в шестнадцатеричной системе.
  • Пропуск нулей при группировке битов в переводе между 2 ↔ 8 ↔ 16.
  • Смешивание целой и дробной частей при переводе.

Арифметические операции в позиционных системах

Арифметические операции в позиционных системах счисления выполняются по тем же правилам, что и в десятичной системе, но с учётом основания системы. Это значит, что при переходе через основание происходит перенос в следующий разряд.

Сложение

  • Складываем цифры справа налево (от младших разрядов к старшим).
  • Если сумма цифр достигает или превышает основание системы, записываем остаток, а 1 переносим в следующий разряд.

$1011₂ + 0110₂ = 10001₂$

Пошагово:

  • 1 + 0 = 1
  • 1 + 1 = 10 → пишем 0, переносим 1
  • 0 + 1 + 1 (перенос) = 10 → пишем 0, переносим 1
  • 1 + 0 + 1 (перенос) = 10 → пишем 0, переносим 1

Итого: $10001₂$

Вычитание

  • Вычитаем цифры справа налево (от младших разрядов к старшим).
  • Если верхняя цифра меньше нижней, занимаем 1 у старшего разряда слева.

$1011₂ - 0011₂ = 1000₂$

Пошагово:

  • 1 − 1 = 0
  • 1 − 1 = 0
  • 0 − 0 = 0
  • 1 − 0 = 1

Итого: $1000₂$

Умножение

  • Умножаем каждую цифру второго числа на каждую цифру первого числа, начиная с младших разрядов.
  • Каждый новый результат сдвигаем влево на один разряд (как при умножении в столбик в десятичной системе).
  • В конце складываем все полученные строки.
   101₂
×  011₂
-------
   101
  101
 101
-------
 1111₂
  • 1 × 101 = 101
  • 1 × 101 = 101 (сдвигаем на 1 влево)
  • 0 × 101 = 000 (сдвигаем на 2 влево)
  • Складываем: 101 + 1010 + 000 = 1111₂

Деление

  • Делим как в обычной десятичной системе, только используем цифры выбранной системы.
  • Определяем, сколько раз делитель помещается в текущей части делимого, записываем результат в ответ.
  • Умножаем делитель на найденное число, вычитаем и спускаем следующую цифру.
  • Продолжаем, пока не закончатся все цифры.

$1100₂ ÷ 10₂ = 110₂$

Пошагово:

  • 10₂ (2) входит в 11₂ (3) — 1 раз → остаток 1
  • Спускаем следующую цифру: получаем 10₂ (2)
  • 10₂ входит в 10₂ — 1 раз → остаток 0
  • Спускаем следующую цифру: снова 0 — пишем 0

Итого: $110₂$ (в десятичной это 6 ÷ 2 = 3)

Правила для других систем (8, 16)

  • В восьмеричной системе основание 8 — перенос происходит при сумме ≥ 8.
  • В шестнадцатеричной системе основание 16 — используются цифры 0–9 и буквы A–F.
  • Пример (шестнадцатеричная):

$A2₁₆ + 3F₁₆ = E1₁₆$

Объяснение: $2+F(15)=17 → 1, перенос 1; A(10)+3+1=14(E).$

Советы при выполнении арифметики в позиционных системах

  • Проверяйте результат переводом в десятичную систему.
  • Используйте таблицы сложения и умножения для систем с основанием больше 10.
  • Для шестнадцатеричной системы держите в памяти соответствие: $A=10, B=11, C=12, D=13, E=14, F=15.$

Итоги

Подведём основные выводы по теме:

  1. Системы счисления — это способы записи чисел с использованием определённого набора символов и правил.
  2. Непозиционные системы (например, римская) не используют принцип разрядности и неудобны для вычислений.
  3. Позиционные системы (двоичная, восьмеричная, десятичная, шестнадцатеричная) используют разряды, что упрощает операции и позволяет представлять любые числа.
  4. Представление чисел в позиционных системах основано на формуле разложения по степеням основания, где вес цифры зависит от её позиции.
  5. В двоичной системе используются только 0 и 1.
  6. В восьмеричной — 0–7, в шестнадцатеричной — 0–9 и A–F.
  7. Перевод чисел между системами счисления:
  8. Из любой в десятичную — по формуле с умножением на степени основания.
  9. Из десятичной в любую — делением с записью остатков в обратном порядке.
  10. Между степенными системами (2, 8, 16) удобно через двоичную систему.
  11. Для дробей используется умножение дробной части на основание.
  12. Арифметические операции в позиционных системах:
  13. Выполняются по тем же принципам, что и в десятичной системе.
  14. При сумме ≥ основанию выполняется перенос, при вычитании — заимствование.
  15. Умножение и деление выполняются поразрядно.
  16. Практическое значение:
  17. Знание систем счисления необходимо для понимания работы компьютеров и цифровых схем.
  18. Позволяет анализировать данные на уровне битов и байтов.
  19. Является базой для дальнейшего изучения архитектуры ЭВМ, программирования и сетевых технологий.

Вывод: умение представлять числа в позиционных системах и выполнять арифметические операции в них — это базовый навык, необходимый каждому специалисту в области информатики и вычислительной техники.