История развития систем счисления

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

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

Первые шаги: непозиционные системы

Зарубки и единичное счисление

Древнейший способ счёта — зарубки на кости или дереве: одна зарубка = одна единица. Это унарная (единичная) система — непозиционная, неудобная для больших чисел.

Египетская иероглифическая система (~3000 до н. э.)

Египтяне использовали отдельные символы для степеней десятки:

Символ

| (вертикальная черта)

∩ (путы)

9 (свиток)

☞ (лотос)

Значение

1

10

100

1 000

Число 2 043 записывалось как два лотоса + четыре свитка + три черты. Сложение и вычитание — терпимо, умножение — мучение.

Римская система (с ~VI в. до н. э.)

Семь латинских букв кодируют основные величины:

I

V

X

L

C

D

M

1

5

10

50

100

500

1000

Правило вычитания (IV=4, IX=9, XL=40) делает систему компактнее, но арифметика всё равно крайне неудобна — нет нуля, нет позиции.

Прорыв: позиционные системы

Вавилонская шестидесятеричная (~2000 до н. э.)

Вавилоняне первыми применили позиционный принцип с основанием 60. Два символа — «единица» и «десяток» — составляли числа до 59; дальше — новый разряд. Отсюда наши 60 минут в часе, 360° в окружности.

Майянская система (~IV–IX вв. н. э.)

Позиционная система с основанием 20, уже содержала символ нуля. Использовалась для астрономических вычислений и священных календарей.

Индийская десятичная система (~V–VII вв.)

Индийские математики создали десятичную позиционную систему с нулём и девятью цифрами. Это революция: нуль позволил различать 10, 100, 1 000 без дополнительных символов.

Распространение через арабский мир (IX–XIII вв.)

Аль-Хорезми и другие арабские учёные распространили индийскую систему по всему исламскому миру, а затем через переводы — в Европу. Слово «алгоритм» происходит от латинизации имени аль-Хорезми.

Двоичная система и рождение компьютера

Лейбниц (1679)

Готфрид Лейбниц систематически описал двоичную арифметику, вдохновившись, по его словам, китайской «Книгой перемен» (гексаграммы Ицзин). Он видел в двоичной системе философский смысл: «из ничего (0) и единицы (1) всё сущее».

Буль, Шеннон и электронные вентили (XIX–XX вв.)

Джордж Буль (1854) создал алгебру логики на основе двоичных значений «истина/ложь». Клод Шеннон в 1937 году показал, что булева алгебра реализуется электрическими схемами. Транзистор в двух состояниях — физическое воплощение бита.

Восьмеричная и шестнадцатеричная в программировании

Двоичные числа длинны и неудобны для чтения. Восьмеричная (1 цифра = 3 бита) и шестнадцатеричная (1 цифра = 4 бита) системы стали компактными «стенографиями» для двоичных данных.

# Покажем, как одно и то же число записывается в разных системах
values = [8, 42, 255, 1023]
print(f"{'Дес.':>6} {'Двоич.':>12} {'Восьм.':>8} {'Шест.':>8}")
print("-" * 38)
for n in values:
    print(f"{n:>6} {bin(n)[2:]:>12} {oct(n)[2:]:>8} {hex(n)[2:].upper():>8}")

Вывод:

  Дес.       Двоич.   Восьм.    Шест.
--------------------------------------
     8         1000       10        8
    42       101010       52       2A
   255     11111111      377       FF
  1023   1111111111     1777      3FF

Число 255 в шестнадцатеричной — просто FF: один байт, две шестнадцатеричные цифры. Именно поэтому цвет белого в CSS записывается как #FFFFFF.

Коротко

  • Первые системы — непозиционные (зарубки, египетские иероглифы, римские цифры): удобны для записи, плохи для вычислений.
  • Вавилоняне первыми применили позиционный принцип (основание 60); он дожил до наших часов и углов.
  • Индийская десятичная система с нулём изменила математику; арабы распространили её по миру.
  • Лейбниц формализовал двоичную систему; Буль и Шеннон сделали её основой электроники.
  • Восьмеричная и шестнадцатеричная — компактные записи двоичных данных; одна hex-цифра = 4 бита.
Проверьте себя
1. Какая система счисления была самой ранней позиционной?
AЕгипетская иероглифическая
BВавилонская шестидесятеричная
CРимская
DИндийская десятичная
2. Откуда в Европу пришла современная десятичная система с нулём?
AИз Древней Греции
BИз Китая через Монголию
CИз Индии через арабских учёных
DБыла изобретена в эпоху Возрождения в Италии
3. Чему равно десятичное число 255 в шестнадцатеричной системе?
AEE
BFF
CF0
D100
4. Для чего в UNIX-системах применяется восьмеричная система?
AДля записи IP-адресов
BДля задания прав доступа к файлам (chmod)
CДля кодирования текста в UTF-8
DДля представления адресов памяти
Поддержать проект