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

Классификация систем счисления

Системы счисления подразделяются на позиционные и непозиционные.

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

23737 2. две сотнисемь.
  1. шестидесятиричная (Древний Вавилон) — первая позиционная система счисления. До сих пор при измерении времени используется основание равное 60 (1 мин = 60 с, 1 ч = 60 мин);
  2. двенадцатеричная система счисления (широкое распространение получила в XIX в. Число12 — «дюжина»: в сутках две дюжины часов. Счет не по пальцам. а по суставам пальцев. На каждом пальце руки, кроме большого, по 3 сустава — всего 12;
Общее свойство всех позиционных систем счисления: Достоинства позиционных систем счисления:
  • в позиционных системах счисления устранены все недостатки непозиционных:
  • в них можно записать любое число (как натуральное, таки действительное);
  • запись чисел компактна и удобна;
  • благодаря поразрядной организации записи чисел с ними легко проводить математические операции.

Видео

Классификация позиционных систем

Двоичные

Определение

Двоичная система —  система счисления, в которой в качестве базовых чисел выбираются степени числа два.

Чтобы не путать их с числами, записанными в десятичной системе счисления, справа внизу указывают основание системы счисления. Обычно число при этом заключают в скобки.

Двоичную систему использовали задолго до возникновения информационных технологий. Во втором тысячелетии до нашей эры народы Южной Америки кодировали двоичной системой свои записи, в том числе и не числовые. Узелок и ровный участок нити чередовались друг с другом.

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

Восьмеричные

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

Десятичные

Элементы числовой базы, или ключевые числа, в десятичной системе счисления представляют собой степени десяти: 10 = 10^1, 100 = 10^2, 1000 = 10^3. В системе всего десять цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Число 10 — основание системы счисления. Цифры от 0 до 9 представляют собой коэффициенты разложения числа по степеням десяти.

Родиной десятичной системы счисления считается Индия, хотя еще в вавилонской цивилизации с ее шестидесятеричной системой использовались закодированные десятичные цифры, а инки в своей узелковой письменности кодировали информацию десятью цветами. Но именно в Индии начали строго соблюдать порядок разрядов числа при записи и ставить ноль, чтобы избежать путаницы. Примерно в середине VIII века эту систему стали использовать другие страны. В Европе она распространилась к XVI веку и была названа «арабской».

Шестнадцатеричные

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

Пятеричная

Система, связанная с количеством пальцев на одной руке, использовалась в Китае и у некоторых племен Африки. В китайском языке у иероглифов, обозначающих цифры от шести до девяти, был один и тот же знак в начале — сокращенное обозначение цифры пять. Для записи чисел в этой системе используются цифры 0, 1, 2, 3, 4.

Двенадцатеричная

Если большим пальцем руки сосчитать число фаланг на других пальцах этой руки, получится двенадцать. Группы по двенадцать предметов называли во многих европейских языках словами, схожими с русским словом «дюжина»: duodezim на латыни, douzaine на французском, dozzina на итальянском, dozen на английском. Римляне пользовались двенадцатеричными дробями, \frac1{12} они называли унцией.

В Европе счет дюжинами долгое время, вплоть до XVIII века, сохранялся наравне с десятеричной системой. Дюжина дюжин составляла гросс (от немецкого слова «большой»), дюжина гроссов — массу. Признаки влияния числа 12 заметны в англо-американской системе линейных мер, в которой 1 фут равен 12 дюймам, 1 дюйм — 12 линиям, 1 линия — 6 точкам.

Шестидесятеричная

Первой позиционной системой счисления считается шестидесятеричная система в Древнем Вавилоне. Ее основание до сих пор применяют для измерения времени. Система счисления времени — смешанная, но для перевода минут в секунды или часы потребуется именно шестидесятеричная система.

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

Двадцатеричная

Двадцатеричную систему называют вигезимальной. Эта система, как и десятеричная, связана с количеством пальцев, поэтому многие народы изобрели ее независимо друг от друга. Основание 20 сохранилось в лингвистической структуре их языков, именно на нем основана система счета в разговорной речи. Например, во французском языке «восемьдесят» состоит из слов «четыре» и «двадцать».

Что такое непозиционная система

Определение

Непозиционная система — это такая система счисления, в которой положения цифры в записи числа не зависит величина, которую она обозначает.

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

Еще до нашей эры разные народы независимо друг от друга отказывались от унарной системы счисления, в которой количество предметов обозначали таким же количеством одинаковых значков, и переходили к более удобным системам. Например, у египтян система счисления была десятичной, но запись числа составлялась только из иероглифов 1, 10, 100, 1000. Их нужно было складывать, поэтому не имело значения, в каком порядке они записаны.

Развернутая форма записи числа

Данный способ записи числа действует и для любой другой позиционной системы счисления и называется развернутой формой:

An = an-1 ∙ qn-1 + an-2 ∙ qn-2 + ∙∙∙ + a ∙ q

где A — число, q — основание системы счисления, а n — количество разрядов числа. При этом свернутой формой будет запись вида:

±an-1an-2∙∙∙a1a2

Например, развернутая форма числа 753 в восьмеричной системе счисления будет иметь следующий вид:

7538 = 7 ∙ 82 + 5 ∙ 81 + 3 ∙ 8

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

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

В компьютерной технике очень часто используется двоичная система счисления. Такую систему очень легко реализовать в электронике (полупроводниковые транзисторы и микросхемы), так как для неё требуется всего два устойчивых состояния (0 и 1).

Двоичная система счисления может быть непозиционной и позиционной системой. В ней используется две цифры: 0 и 1. В реальном устройстве это может быть реализовано присутствием какого-либо физического явления или его отсутствием. Например: есть электрический заряд или его нет, есть напряжение или нет, есть ток или нет, есть сопротивление или нет, отражает свет или нет, намагничено или не намагничено, есть отверстие или нет и т.п.

Мы уже знаем, как переводить числа в различные системы счисления. Посмотрим, как это происходит с двоичной системой счисления. Переведём число из двоичной системы счисления в десятичную.

;

Вы это можете проверить на программе-калькуляторе (gcalctool в gnome, Kcalc в KDE, или калькулятор в Windows). Он умеет производить расчёты в двоичной, восьмеричной и шестнадцатиричной системах счисления. Теперь вы знаете, как он это проделывает. Если вы захотите посвятить свою жизнь программированию, то вам часто придётся работать со степенями двойки. Ниже представлена таблица:

Степень Значение
1
1 2
2 4
3 8
4 16
5 32
6 64
7 128
8 256
9 512
10 1024
11 2048
12 4096
13 8192
14 16384
15 32768
16 65536

Произведём обратное преобразование. Чтобы преобразовать число в десятичном виде к двоичному, нам нужно будет делить всё время на два и смотреть на остаток от деления. Возьмём число 33.

  • 33 : 2 = 16 остаток 1;
  • 16 : 2 = 8 остаток 0;
  • 8 : 2 = 4 остаток 0;
  • 4 : 2 = 2 остаток 0;
  • 2 : 2 = 1 остаток 0;
  • 1 : 2 = 0 остаток 1;

Получили .

Возьмём число 55. Посмотрим, что получится.

  • 55 : 2 = 27 остаток 1;
  • 27 : 2 = 13 остаток 1;
  • 13 : 2 = 6 остаток 1;
  • 6 : 2 = 3 остаток 0;
  • 3 : 2 = 1 остаток 1;
  • 1 : 2 = 0 остаток 1.

Получили .

Ниже приведены ещё примеры со сложением, вычитанием, умножением и делением.

Сложение:

Вычитание:

Умножение:

Деление:

Программа двоичного представления десятичного числа (Написана на Си)

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

Алгоритм перевода чисел из любой системы счисления в десятичную

  1. Представить число в развернутой форме. При этом основание системы счисления должно быть представлено в десятичной системе счисления.
  2. Найти сумму ряда. Полученное число является значением числа в десятичной системе счисления.

Алгоритм перевода целых чисел из десятичной системы счисления в любую другую

  1. Последовательно выполнять деление данного числа и получаемых целых частных на основание новой системы счисления до тех пор, пока не получится частное, меньше делителя.
  2. Полученные остатки, являющиеся цифрами числа в новой системе счисления, привести в соответствие с алфавитом новой системы счисления.
  3. Составить число в новой системе счисления, записывая его, начиная с последнего остатка.

Алгоритм перевода правильных дробей из десятичной системы счисления в любую другую

  1. Последовательно умножаем данное число и получаемые дробные части произведения на основание новой системы счисления до тех пор, пока дробная часть произведения не станет равна нулю или будет достигнута требуемая точность представления числа.
  2. Полученные целые части произведений, являющиеся цифрами числа в новой системе счисления, привести в соответствие с алфавитом новой системы счисления.
  3. Составить дробную часть числа в новой системе счисления, начиная с целой части первого произведения.

Алгоритм перевода произвольных чисел из десятичной системы счисления в любую другую

  1. Отдельно переводится целая часть.
  2. Отдельно переводится дробная.
  3. В итоговой записи полученного числа целая часть отделяется от дробной запятой.

Теги