Познаем системы счисления используемые в ЭВМ

Комментариев: 0
4 мин.
Добавить в закладки

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

Немного теории

Существует 2 типа систем счисления: позиционная и непозиционная.

Непозиционная система счисления — это когда набор цифр не связан с разрядностью (разделение на единицы, десятки, тысячи и т.д.).

Позиционная система счисления — это когда набор цифр, который, как вы, наверное, догадались, имеет разряды. 😉

Лучше всего это понять на примере.

Отличным примером непозиционной системы счисления является римская форма записи. Напомню: I — один, II — два, III — три, IV — четыре, V — пять, X — десять, L — пятьдесят, C — сто, D — пятьсот, M — тысяча.

Обозначим число 3032:

MMMXXXII, где 1000 + 1000 + 1000 + 10 + 10 + 10 + 1 + 1

Как видите, для обозначения каждого разряда, например тысяч, нам нужно повторять римскую M.

А теперь то же самое число в позиционной системе счисления:

3032, где

  • первое число — это разряд тысяч, мы обозначили 3 раза по тысяче
  • второе число — это сотни, мы обозначили 0 сотен
  • третье число — это десятки, мы обозначили 3 десятка
  • четвертое число — это единицы, мы обозначили 2 единицы.

Надеюсь, с этим все понятно. Теперь приступим к системам счисления.

Десятичная система счисления

Я добавил ее в этот пост только для полноты картины. Вы ей пользуетесь каждый день. Это обычные арабские цифры: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Десятичная система является позиционной, но вы это и так знаете. Но могу добавить несколько интересных фактов, чтобы сделать раздел чуть полезнее:

  • один десятичный разряд называется «децит» (decit), который сокращается от decimal digit;
  • почему именно 10 чисел? Все просто — количество пальцев обычного человека (и токаря знакомого с техникой безопасности 🙃).

Двоичная система счисления

Компьютеры понимают только два числа: 0 и 1, что означает «нет сигнала (нет тока)» и «есть сигнал (есть ток)» — это называется двоичный (бинарный) код, а его минимальная единица измерения называется «бит». На этом коде работает процессор — «мозги» компьютера.

Когда вы запускаете свои программы или написанные кем-то другим — они переведутся в двоичный код понятный процессору. Причем на двоичном коде, как таковом, работают и многие другие системы, которые подчиняются булевой алгебре («ложь» или «правда», т.е. 0 или 1).

Например:

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

Давайте разберемся с двоичной системой счисления, которую еще называют бинарной. Это позиционная (см. теорию выше) система счисления по основанию 2.

Вести счет с помощью двух цифр начали еще в Древнем Китае, поэтому данная система счисления не была создана специально для компьютерных систем, а скажем так, была адаптирована. Также, вспомните азбуку Морзе, которая состоит из двух символов: «точка» и «тире». Это не двоичная система счисления, но тоже следует принципам булевой алгебры.

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

  • 1100 — это 12 в десятичной системе счисления;
  • 10111011100 — это 1 500 в десятичной системе счисления;
  • 101001101 — это 333 в десятичной системе счисления.

Попробуем разобраться с преобразованием двоичной системы счисления в десятичную. Нам понадобится таблицы степеней чисел с основанием 2:

5122561286432168421

Здесь все просто, каждый последующий разряд (справа налево) умножается на 2.

Преобразуем число двоичное 10001111. Применим таблицу выше для этого числа:

Степени1286432168421
Число10001111

Преобразуем слева направо по формуле число * степень

  • 1 * 128 = 128;
  • 0 * 64 = 0;
  • 0 * 32 = 0;
  • 0 * 16 = 0;
  • 1 * 8 = 8;
  • 1 * 4 = 4;
  • 1 * 2 = 2;
  • 1 * 1 = 1.

Складываем: 128 + 0 + 0 + 0 + 8 + 4 + 2 + 1 = 143.

Ура! Это и есть наше число в десятичной системе счисления.

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

Применение

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

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

Восьмеричная система счисления

Восьмеричная система счисления — это позиционная система счисления по основанию 8. Состоит из цифр 0, 1, 2, 3, 4, 5, 6, 7.

Примеры чисел в восьмеричной системе счисления:

  • 741 — это 481 в десятичной системе счисления;
  • 3717 — это 1999 в десятичной системе счисления;
  • 10 — это 7 в десятичной системе счисления.

Как перевести число в восьмеричной системе счисления в десятичную? Числа от 0 до 7 — отображаются без преобразований. А для больших чисел, нужно воспользоваться формулой число * 8 в степени равной разряду. Разряды считаются справа налево. Для примера, переведем число 20454 в восьмеричной системе счисления в десятичную:

  • 4 * 80 (первый разряд справа) = 4;
  • 5 * 81  = 40;
  • 4 * 82 = 256;
  • 0 * 83 = 0;
  • 2 * 84 = 8192;

Складываем: 0 + 40 + 256 + 0 + 8192 = 8492. Готово.

Применение

Наиболее часто восьмеричная система счисления используется в Linux-подобных операционных системах для выставления прав доступа к файлам и директориям (0644, 0755 и т.п.).

Шестнадцатеричная система счисления

Шестнадцатеричная система счисления — это позиционная система счисления по основанию 16. Состоит из цифр 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 и латинских букв обозначающих следующие по порядку числа: A — число 10, B — число 11, C — число 12, D — число 13, E — число 14, F — число 15.

А что здесь происходит? Цифры, итак, сложны, а к ним еще и буквы добавились? Давайте разбираться.

Примеры чисел в шестнадцатеричной системе счисления:

  • 1С4 — это 452 в десятичной системе счисления;
  • 2EE0 — это 12000 в десятичной системе счисления;
  • 13 — это 19 в десятичной системе счисления.

Преобразуем число в шестнадцатеричной системе счисления в десятичную на примере числа 1E61. По аналогии с восьмеричной системой счисления, нужно воспользоваться формулой число * 16 в степени равной разряду (справа налево):

  • 1 * 160 (первый разряд справа) = 1;
  • 6 * 161 = 96;
  • E (оно же 14) * 162 = 3584;
  • 1 * 163 = 4096.

Складываем: 1 + 96 + 3584 + 4096 = 7777.

Переводить уже проще?

Использование

Шестнадцатеричная система счисления очень часто используется в низкоуровневом программировании из-за минимальной адресной единицы памяти, которым является 8-битый байт (один байт записывается двумя шестнадцатеричными числами, а полубайт — одним числом).

Также, в наборе символов Unicode номер символа записывается в шестнадцатеричной системе счисления.

Ну и конечно же, в шестнадцатеричной системе счисления записываются названия цветов образуемые из трех основных (красный — R (red), зеленый — G (green) и синий — B (blue), RGB). Например, FFFFFF — белый, а 000000 — черный.

Познаем системы счисления используемые в ЭВМ

Подписаться
Уведомить о
guest
0 комментариев