Загрузка калькулятора…

Системы счисления — определение и история

Система счисления — это совокупность правил и приёмов записи чисел с помощью конечного набора знаков (цифр). Основание системы счисления определяет количество различных цифр, используемых для записи чисел, и показывает, во сколько раз значение разряда возрастает при переходе на одну позицию влево. Например, в десятичной системе (основание 10) используются цифры 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, а значение каждого следующего разряда в 10 раз больше предыдущего.

История систем счисления насчитывает тысячи лет. Древние вавилоняне использовали шестидесятеричную систему (основание 60), следы которой сохранились в делении часа на 60 минут и окружности на 360 градусов. Древние египтяне пользовались десятичной непозиционной системой, в которой для каждого разряда существовал свой иероглиф. Майя использовали двадцатеричную систему (основание 20). Современная десятичная позиционная система пришла из Индии через арабских математиков в средневековую Европу — именно поэтому цифры 0–9 называют арабскими, хотя правильнее говорить «индийско-арабские».

Наш онлайн-калькулятор систем счисления позволяет мгновенно переводить числа между любыми основаниями от 2 до 36. Инструмент показывает пошаговое решение — промежуточные вычисления, которые помогут понять алгоритм перевода. Калькулятор поддерживает отрицательные и дробные числа, что делает его полезным как для школьников и студентов, так и для программистов и инженеров.

Позиционные системы счисления — принцип работы

В позиционной системе счисления значение каждой цифры зависит не только от самой цифры, но и от её положения (позиции, разряда) в записи числа. Любое число N в позиционной системе с основанием b можно представить в виде суммы:

N = dₙ × bⁿ + dₙ₋₁ × bⁿ⁻¹ + … + d₁ × b¹ + d₀ × b⁰ + d₋₁ × b⁻¹ + d₋₂ × b⁻² + …

где dᵢ — цифры числа, b — основание системы, а i — номер разряда. Целая часть числа соответствует неотрицательным степеням основания, дробная — отрицательным. Это универсальная формула, работающая для любого основания.

Рассмотрим пример: число 3А7.В₁₆ (шестнадцатеричное). Здесь A = 10, B = 11. Десятичное значение: 3 × 16² + 10 × 16¹ + 7 × 16⁰ + 11 × 16⁻¹ = 768 + 160 + 7 + 0,6875 = 935,6875₁₀. Каждый разряд «весит» в 16 раз больше следующего (справа), а дробные разряды — в 16 раз меньше.

Все привычные системы счисления — двоичная, восьмеричная, десятичная, шестнадцатеричная — являются позиционными. В отличие от них, непозиционные системы (например, римские цифры) не зависят от положения символа: I всегда означает 1, X — всегда 10. Именно позиционный принцип делает арифметические операции простыми и механическими — сложение и умножение «столбиком» работают в любой позиционной системе одинаково.

Двоичная система счисления (BIN, основание 2)

Двоичная система — фундамент всей цифровой техники. В ней используются только две цифры: 0 и 1. Каждый разряд двоичного числа называется бит (binary digit) — минимальная единица информации. Группа из 8 бит образует байт, который может хранить числа от 0 (00000000₂) до 255 (11111111₂).

Двоичная система используется в компьютерах потому, что транзисторы — основные элементы процессоров — работают в двух состояниях: включено (1) и выключено (0). Все данные в компьютере — текст, изображения, звук, видео — хранятся и обрабатываются в двоичной форме. Например, буква «A» в кодировке ASCII — это 01000001₂ (65₁₀), а цвет #FF0000 (красный) — три байта: 11111111 00000000 00000000.

Перевод из десятичной в двоичную выполняется последовательным делением целой части на 2 и умножением дробной части на 2. Обратный перевод — суммирование разрядов, умноженных на степени двойки. Примеры: 42₁₀ = 101010₂ (32+8+2), 255₁₀ = 11111111₂ (128+64+32+16+8+4+2+1). Степени двойки полезно знать наизусть: 2⁰=1, 2¹=2, 2²=4, 2³=8, 2⁴=16, 2⁵=32, 2⁶=64, 2⁷=128, 2⁸=256, 2⁹=512, 2¹⁰=1024.

Восьмеричная система счисления (OCT, основание 8)

Восьмеричная система использует цифры 0–7. Её главное достоинство — компактная запись двоичных чисел: каждая восьмеричная цифра точно соответствует трём двоичным разрядам (триаде). Для перевода из двоичной в восьмеричную достаточно разбить двоичное число на группы по 3 цифры (справа налево для целой части) и заменить каждую группу соответствующей восьмеричной цифрой.

Таблица соответствия: 000₂=0₈, 001₂=1₈, 010₂=2₈, 011₂=3₈, 100₂=4₈, 101₂=5₈, 110₂=6₈, 111₂=7₈. Пример: 110 101 010₂ = 652₈ = 426₁₀.

В Unix-подобных операционных системах восьмеричная система используется для записи прав доступа к файлам. Команда chmod 755 означает: владелец имеет права 7₈ = 111₂ (чтение + запись + выполнение), группа — 5₈ = 101₂ (чтение + выполнение), остальные — 5₈ = 101₂. Восьмеричная нотация также применялась в ранних мини-компьютерах (PDP-8, PDP-11), где длина машинного слова была кратна трём.

Шестнадцатеричная система счисления (HEX, основание 16)

Шестнадцатеричная система использует 16 символов: цифры 0–9 и буквы A–F, где A=10, B=11, C=12, D=13, E=14, F=15. Каждая HEX-цифра точно соответствует четырём двоичным разрядам (нибблу), что делает HEX идеальным инструментом для компактной записи двоичных данных.

Шестнадцатеричная система — одна из самых важных в программировании и информатике. Области применения:

  • Цвета в CSS и графике: #FF8800 — оранжевый (R=255₁₀, G=136₁₀, B=0₁₀). Каждая пара HEX-цифр — один байт (0–255).
  • Адреса памяти: 0x7FFE0000 — типичный адрес в оперативной памяти компьютера.
  • MAC-адреса сетевых устройств: 00:1A:2B:3C:4D:5E — шесть байтов в HEX-записи.
  • Хеш-суммы: SHA-256 выдаёт 64 HEX-символа (256 бит), MD5 — 32 символа (128 бит).
  • Машинный код и ассемблер: инструкции процессора записываются в HEX-формате.
  • Unicode и кодировки: символ U+0410 — буква «А» кириллицы (0410₁₆ = 1040₁₀).

Перевод из HEX в двоичную и обратно — самая быстрая операция: каждая HEX-цифра заменяется четырьмя битами. Пример: 2F₁₆ = 0010 1111₂ = 47₁₀. Перевод из HEX в десятичную: 2F₁₆ = 2×16¹ + 15×16⁰ = 32 + 15 = 47₁₀.

Алгоритмы перевода между системами счисления

Существуют два основных алгоритма перевода чисел между произвольными системами счисления. Оба метода реализованы в нашем калькуляторе.

Метод 1: через десятичную систему. Это универсальный двухшаговый алгоритм. Шаг 1: переведите число из исходной системы в десятичную, используя формулу разложения по степеням основания. Шаг 2: переведите полученное десятичное число в целевую систему методом последовательного деления (для целой части) и последовательного умножения (для дробной).

Метод 2: прямой перевод (для степеней двойки). Если основания исходной и целевой систем являются степенями одного числа, перевод выполняется поразрядной заменой. Так, для перевода из двоичной в восьмеричную каждая триада (3 бита) заменяется одной восьмеричной цифрой. Для перевода из двоичной в шестнадцатеричную каждая тетрада (4 бита) заменяется одной HEX-цифрой. Этот метод значительно быстрее и не требует промежуточных вычислений.

Алгоритм деления для целой части: делим число на новое основание, записываем остаток; частное снова делим на основание, записываем остаток — и так до получения нулевого частного. Остатки, прочитанные снизу вверх, дают искомое число. Пример: 156₁₀ → основание 8. 156÷8=19 (ост. 4), 19÷8=2 (ост. 3), 2÷8=0 (ост. 2). Результат: 234₈.

Алгоритм умножения для дробной части: умножаем дробную часть на новое основание, записываем целую часть результата; дробную часть результата снова умножаем — и так до получения нуля или достижения нужной точности. Пример: 0,625₁₀ → основание 2. 0,625×2=1,25 (1), 0,25×2=0,5 (0), 0,5×2=1,0 (1). Результат: 0,101₂.

Дробные числа в различных системах счисления

Перевод дробных чисел между системами — важная тема, которая объясняет, почему компьютерные вычисления с дробями иногда дают неточные результаты. Не все конечные десятичные дроби имеют конечное представление в других системах, и наоборот.

Например, дробь 0,1₁₀ (одна десятая) в двоичной системе представляется бесконечной периодической дробью: 0,0(0011)₂ = 0,000110011001100110011…₂. Это фундаментальная причина знаменитой «ошибки плавающей точки» в программировании: 0,1 + 0,2 = 0,30000000000000004 в IEEE 754. Стандарт IEEE 754 использует 64-битное двоичное представление (double), где дробная часть хранится в 52 битах мантиссы — этого недостаточно для точного представления некоторых десятичных дробей.

Конечное представление в системе с основанием b имеют только те дроби, знаменатель которых (в несократимом виде) содержит только простые множители основания b. Для десятичной системы (b=10=2×5) это дроби с знаменателями вида 2ᵃ × 5ᵇ. Для двоичной (b=2) — только степени двойки: 1/2, 1/4, 1/8, 1/16 и т.д.

Применение систем счисления в компьютерных науках

Системы счисления — фундаментальный инструмент в компьютерных науках и информационных технологиях. Понимание различных систем и свободный перевод между ними необходимы каждому IT-специалисту.

Побитовые операции. В двоичной системе наглядно видны результаты побитовых операций AND, OR, XOR, NOT, битовых сдвигов. Эти операции — основа работы процессора, используются в криптографии, компрессии данных, обработке изображений, сетевом программировании (маски подсетей). Пример: 12₁₀ AND 10₁₀ → 1100₂ AND 1010₂ = 1000₂ = 8₁₀.

Представление отрицательных чисел. В компьютерах отрицательные целые числа хранятся в дополнительном коде (two's complement). Для n-битного числа дополнительный код получается инвертированием всех битов и прибавлением единицы. Например, −5₁₀ в 8-битном представлении: 5₁₀ = 00000101₂ → инверсия: 11111010₂ → +1: 11111011₂ = FB₁₆. Старший бит — знаковый: 0 — положительное, 1 — отрицательное число.

Кодирование данных. Base64 — популярная схема кодирования двоичных данных в текст, используемая в электронной почте, JWT-токенах, встраивании изображений в CSS. Каждый символ Base64 кодирует 6 бит данных. Base32 кодирует 5 бит на символ и используется в двухфакторной аутентификации (TOTP/HOTP).

IP-адреса и маски подсетей. IPv4-адрес 192.168.1.1 — это четыре десятичных числа (октета), каждое из которых представляет один байт: C0.A8.01.01 в HEX или 11000000.10101000.00000001.00000001 в двоичной. Маска подсети /24 означает 24 единичных бита: 11111111.11111111.11111111.00000000₂ = 255.255.255.0₁₀.

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

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

Двоичное сложение: 0+0=0, 0+1=1, 1+0=1, 1+1=10₂ (0 с переносом 1). Пример: 1011₂ + 0110₂. Разряд 0: 1+0=1. Разряд 1: 1+1=10₂, пишем 0, перенос 1. Разряд 2: 0+1+1=10₂, пишем 0, перенос 1. Разряд 3: 1+0+1=10₂. Результат: 10001₂ = 17₁₀ (11+6=17). Это именно тот алгоритм, который использует процессор компьютера в своих сумматорах.

Шестнадцатеричное сложение: перенос происходит при достижении 16. Пример: A₁₆ + 7₁₆ = 11₁₆ (10+7=17₁₀=16+1, пишем 1 с переносом 1). Ещё пример: FF₁₆ + 1₁₆ = 100₁₆ (255+1=256₁₀). Программисты часто выполняют HEX-арифметику мысленно при отладке программ и анализе дампов памяти.

Двоичное умножение — самая простая из всех систем, так как таблица умножения содержит только четыре правила: 0×0=0, 0×1=0, 1×0=0, 1×1=1. Поэтому умножение в двоичной системе сводится к сдвигам и сложениям — именно этот принцип лежит в основе аппаратных умножителей процессоров.

Системы счисления с основанием больше 16

Хотя двоичная, восьмеричная, десятичная и шестнадцатеричная системы встречаются чаще всего, существуют практические применения систем с другими основаниями. Наш калькулятор поддерживает основания от 2 до 36, где для цифр сверх 9 используются буквы латинского алфавита: A=10, B=11, …, Z=35.

Основание 32 (Base32) используется в кодировании TOTP-секретов для двухфакторной аутентификации (Google Authenticator, Authy). Набор символов: A–Z и 2–7 (без 0, 1, 8, 9, чтобы избежать путаницы с буквами O, I).

Основание 36 — максимальное основание с использованием цифр 0–9 и букв A–Z. Оно применяется для сокращения URL-адресов, генерации уникальных идентификаторов и компактного представления больших чисел. Например, число 1000000₁₀ в 36-ричной системе: LFLS₃₆ — всего 4 символа вместо 7 десятичных цифр.

Основание 12 (двенадцатеричная система) обладает интересными свойствами: 12 делится на 2, 3, 4 и 6, что упрощает дробные представления. 1/3 = 0,4₁₂ (конечная дробь!), тогда как в десятичной 1/3 = 0,333…. Дюжинная (двенадцатеричная) система активно обсуждается энтузиастами как потенциальная замена десятичной.

Системы счисления в образовании

Тема «Системы счисления» входит в обязательную программу по информатике для школ и вузов России. На ЕГЭ по информатике 2026 года задачи на системы счисления встречаются в нескольких заданиях: перевод между системами, арифметические операции в двоичной и восьмеричной системах, определение основания системы по условию. Типичные задачи:

  • Задача 1: Переведите число 10110₂ в десятичную систему. Решение: 1×16 + 0×8 + 1×4 + 1×2 + 0×1 = 22₁₀.
  • Задача 2: В какой системе счисления число 31 равно десятичному 25? Решение: 3×b + 1 = 25, 3b = 24, b = 8. Ответ: восьмеричная.
  • Задача 3: Сколько единиц в двоичной записи числа 255₁₀? 255₁₀ = 11111111₂ → ответ: 8 единиц.
  • Задача 4: Выполните сложение 1101₂ + 101₂. Ответ: 10010₂ (13+5=18₁₀).

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

Источники

  • Босова Л. Л., Босова А. Ю. «Информатика. 8 класс» — системы счисления, перевод между основаниями
  • Кнут Д. Э. «Искусство программирования», том 2 — позиционные системы счисления и арифметические алгоритмы
  • IEEE 754-2019 — стандарт представления чисел с плавающей точкой в двоичной системе
  • ФИПИ — Федеральный институт педагогических измерений, демоверсии и задачники ЕГЭ по информатике 2026

Часто задаваемые вопросы

Что такое система счисления и зачем нужен перевод между системами?
Система счисления — это способ записи чисел с помощью определённого набора символов (цифр). Основание системы определяет, сколько различных цифр используется. В десятичной системе (основание 10) используются цифры 0–9, в двоичной (основание 2) — только 0 и 1. Перевод между системами необходим в программировании (двоичная, восьмеричная, шестнадцатеричная системы), при работе с компьютерной памятью и адресами, в цифровой электронике и криптографии. Наш калькулятор поддерживает все основания от 2 до 36.
Как перевести число из двоичной системы в десятичную?
Чтобы перевести двоичное число в десятичное, умножьте каждый разряд на соответствующую степень двойки и сложите результаты. Разряды нумеруются справа налево, начиная с нуля. Например: 1011₂ = 1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 8 + 0 + 2 + 1 = 11₁₀. Для дробной части степени двойки отрицательные: 0.101₂ = 1×2⁻¹ + 0×2⁻² + 1×2⁻³ = 0,5 + 0 + 0,125 = 0,625₁₀.
Как перевести число из десятичной системы в двоичную?
Целую часть числа делите на 2, записывая остатки снизу вверх. Дробную часть умножайте на 2, записывая целые части результата. Пример: 13₁₀ → 13÷2=6 (ост. 1), 6÷2=3 (ост. 0), 3÷2=1 (ост. 1), 1÷2=0 (ост. 1). Читаем остатки снизу вверх: 1101₂. Для 0,375₁₀: 0,375×2=0,75 (0), 0,75×2=1,5 (1), 0,5×2=1,0 (1). Результат: 0,011₂.
Зачем в программировании используется шестнадцатеричная система?
Шестнадцатеричная система (HEX) удобна тем, что каждая hex-цифра точно соответствует 4 двоичным разрядам (ниббл). Это позволяет компактно записывать длинные двоичные числа: вместо 11111111₂ пишут FF₁₆. HEX используется для записи цветов в CSS (#FF0000 — красный), адресов памяти, MAC-адресов, хеш-сумм, байт-кодов и содержимого бинарных файлов. Один байт (8 бит) записывается ровно двумя hex-цифрами: от 00 до FF.
Как работает восьмеричная система счисления?
Восьмеричная (OCT) система использует цифры 0–7, основание равно 8. Каждая восьмеричная цифра соответствует ровно 3 двоичным разрядам. Например: 752₈ = 111 101 010₂. OCT широко использовалась в ранних ЭВМ и Unix-системах. Сегодня OCT применяется в Unix-подобных системах для записи прав доступа к файлам (chmod 755 — это 111 101 101 в двоичной). Перевод: 752₈ = 7×8² + 5×8¹ + 2×8⁰ = 448 + 40 + 2 = 490₁₀.
Можно ли переводить дробные числа между системами счисления?
Да, наш калькулятор поддерживает дробные числа. Целая и дробная части конвертируются отдельно. Важно знать: не все конечные десятичные дроби имеют конечное представление в других системах. Например, 0,1₁₀ в двоичной системе — бесконечная периодическая дробь 0,0001100110011…₂. Именно поэтому вычисления с плавающей точкой в компьютерах иногда дают неточные результаты (0,1 + 0,2 ≠ 0,3 в IEEE 754). Калькулятор показывает до 20 знаков дробной части.
Что такое позиционная и непозиционная система счисления?
В позиционной системе значение цифры зависит от её позиции (разряда). Например, в числе 555₁₀ первая 5 означает 500, вторая — 50, третья — 5. Все привычные системы (двоичная, десятичная, шестнадцатеричная) — позиционные. В непозиционной системе значение символа фиксировано. Классический пример — римские цифры: X всегда означает 10, независимо от позиции. Позиционные системы удобнее для арифметических операций, поэтому именно они используются в математике и компьютерных науках.
Какие системы счисления поддерживает калькулятор и какие символы используются?
Калькулятор поддерживает любое основание от 2 до 36. Для оснований от 2 до 10 используются цифры 0–9. Для оснований от 11 до 36 дополнительно используются латинские буквы: A=10, B=11, C=12, …, Z=35. Например, в 36-ричной системе число Z₃₆ = 35₁₀, а YZ₃₆ = 34×36 + 35 = 1259₁₀. Системы с основанием больше 16 применяются в специализированных областях: Base32 и Base64 используются для кодирования данных в Интернете.