Основы систем счисления

Изучая кодировки, я понял, что недостаточно хорошо понимаю системы счислений. Тем не менее, часто использовал 2-, 8-, 10-, 16-ю системы, переводил одну в другую, но делалось все на “автомате”. Прочитав множество публикаций, я был удивлен отсутствием единой, написанной простым языком, статьи по столь базовому материалу. Именно поэтому решил написать свою, в которой постарался доступно и по порядку изложить основы систем счисления.

Введение


Система счисления — это способ записи (представления) чисел.

Что под этим подразумевается? Например, вы видите перед собой несколько деревьев. Ваша задача — их посчитать. Для этого можно — загибать пальцы, делать зарубки на камне (одно дерево — один палец\зарубка) или сопоставить 10 деревьям какой-нибудь предмет, например, камень, а единичному экземпляру — палочку и выкладывать их на землю по мере подсчета. В первом случае число представляется, как строка из загнутых пальцев или зарубок, во втором — композиция камней и палочек, где слева — камни, а справа — палочки

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

Непозиционная — самая древняя, в ней каждая цифра числа имеет величину, не зависящую от её позиции (разряда). То есть, если у вас 5 черточек — то число тоже равно 5, поскольку каждой черточке, независимо от её места в строке, соответствует всего 1 один предмет.

Позиционная система — значение каждой цифры зависит от её позиции (разряда) в числе. Например, привычная для нас 10-я система счисления — позиционная. Рассмотрим число 453. Цифра 4 обозначает количество сотен и соответствует числу 400, 5 — кол-во десяток и аналогично значению 50, а 3 — единиц и значению 3. Как видим — чем больше разряд — тем значение выше. Итоговое число можно представить, как сумму 400+50+3=453.

Однородная система — для всех разрядов (позиций) числа набор допустимых символов (цифр) одинаков. В качестве примера возьмем упоминавшуюся ранее 10-ю систему. При записи числа в однородной 10-й системе вы можете использовать в каждом разряде исключительно одну цифру от 0 до 9, таким образом, допускается число 450 (1-й разряд — 0, 2-й — 5, 3-й — 4), а 4F5 — нет, поскольку символ F не входит в набор цифр от 0 до 9.

Смешанная система — в каждом разряде (позиции) числа набор допустимых символов (цифр) может отличаться от наборов других разрядов. Яркий пример — система измерения времени. В разряде секунд и минут возможно 60 различных символов (от «00» до «59»), в разряде часов – 24 разных символа (от «00» до «23»), в разряде суток – 365 и т. д.

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


Как только люди научились считать — возникла потребность записи чисел. В начале все было просто — зарубка или черточка на какой-нибудь поверхности соответствовала одному предмету, например, одному фрукту. Так появилась первая система счисления — единичная.

Единичная система счисления

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

Для удобства, люди стали группировать палочки по 3, 5, 10 штук. При этом, каждой группе соответствовал определенный знак или предмет. Изначально для подсчета использовались пальцы рук, поэтому первые знаки появились для групп из 5 и 10 штук (единиц). Все это позволило создать более удобные системы записи чисел.

Древнеегипетская десятичная система

В Древнем Египте использовались специальные символы (цифры) для обозначения чисел 1, 10, 102, 103, 104, 105, 106, 107. Вот некоторые из них:

image

Почему она называется десятичной? Как писалось выше — люди стали группировать символы. В Египте — выбрали группировку по 10, оставив без изменений цифру “1”. В данном случае, число 10 называется основанием десятичной системы счисления, а каждый символ — представление числа 10 в какой-то степени.

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

image

Вавилонская шестидесятеричная система

В отличии от египетской, в вавилонской системе использовалось всего 2 символа: “прямой” клин — для обозначения единиц и “лежачий” — для десятков. Чтобы определить значение числа необходимо изображение числа разбить на разряды справа налево. Новый разряд начинается с появления прямого клина после лежачего. В качестве примера возьмем число 32:
image
Число 60 и все его степени так же обозначаются прямым клином, что и “1”. Поэтому вавилонская система счисления получила название шестидесятеричной.
Все числа от 1 до 59 вавилоняне записывали в десятичной непозиционной системе, а большие значения — в позиционной с основанием 60. Число 92:
image
Запись числа была неоднозначной, поскольку не существовало цифры обозначающей ноль. Представление числа 92 могло обозначать не только 92=60+32, но и, например, 3632=3600+32. Для определения абсолютного значения числа был введен специальный символ для обозначения пропущенного шестидесятеричного разряда, что соответствует появлению цифры 0 в записи десятичного числа:
image
Теперь число 3632 следует записывать, как:

image

Шестидесятеричная вавилонская система — первая система счисления, частично основанная на позиционном принципе. Данная система счисления используется и сегодня, например, при определении времени — час состоит из 60 минут, а минута из 60 секунд.

Римская система

Римская система не сильно отличается от египетской. В ней для обозначения чисел 1, 5, 10, 50, 100, 500 и 1000 используются заглавные латинские буквы I, V, X, L, C, D и M соответственно. Число в римской системе счисления — это набор стоящих подряд цифр.

Методы определения значения числа:
  1. Значение числа равно сумме значений его цифр. Например, число 32 в римской системе счисления имеет вид XXXII=(X+X+X)+(I+I)=30+2=32
  2. Если слева от большей цифры стоит меньшая, то значение равно разности между большей и меньшей цифрами. При этом, левая цифра может быть меньше правой максимум на один порядок: так, перед L(50) и С(100) из «младших» может стоять только X(10), перед D(500) и M(1000) — только C(100), перед V(5) — только I(1); число 444 в рассматриваемой системе счисления будет записано в виде CDXLIV = (D-C)+(L-X)+(V-I) = 400+40+4=444.
  3. Значение равно сумме значений групп и цифр, не подходящих под 1 и 2 пункты.

Помимо цифирных, существуют и буквенные (алфавитные) системы счисления, вот некоторые из них:
1) Славянская
2) Греческая (ионийская)

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


Как упоминалось выше — первые предпосылки к появлению позиционной системы возникли в древнем Вавилоне. В Индии система приняла форму позиционной десятичной нумерации с применением нуля, а у индусов эту систему чисел заимствовали арабы, от которых её переняли европейцы. По каким-то причинам, в Европе за этой системой закрепилось название “арабская”.

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

Это одна из самых распространенных систем счисления. Именно её мы используем, когда называем цену товара и произносим номер автобуса. В каждом разряде (позиции) может использоваться только одна цифра из диапазона от 0 до 9. Основанием системы является число 10.

Для примера возьмем число 503. Если бы это число было записано в непозиционной системе, то его значение равнялось 5+0+3 = 8. Но у нас — позиционная система и значит каждую цифру числа необходимо умножить на основание системы, в данном случае число “10”, возведенное в степень, равную номеру разряда. Получается, значение равно 5*102 + 0*101 + 3*100 = 500+0+3 = 503. Чтобы избежать путаницы при одновременной работе с несколькими системами счисления основание указывается в качестве нижнего индекса. Таким образом, 503 = 50310.

Помимо десятичной системы, отдельного внимания заслуживают 2-, 8-, 16-ая системы.

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

Эта система, в основном, используется в вычислительной технике. Почему не стали использовать привычную нам 10-ю? Первую вычислительную машину создал Блез Паскаль, использовавший в ней десятичную систему, которая оказалась неудобной в современных электронных машинах, поскольку требовалось производство устройств, способных работать в 10 состояниях, что увеличивало их цену и итоговые размеры машины. Этих недостатков лишены элементы, работающие в 2-ой системе. Тем не менее, рассматриваемая система была создана за долго до изобретения вычислительных машин и уходит “корнями” в цивилизацию Инков, где использовались кипу — сложные верёвочные сплетения и узелки.

Двоичная позиционная система счисления имеет основание 2 и использует для записи числа 2 символа (цифры): 0 и 1. В каждом разряде допустима только одна цифра — либо 0, либо 1.

Примером может служить число 101. Оно аналогично числу 5 в десятичной системе счисления. Для того, чтобы перевести из 2-й в 10-ю необходимо умножить каждую цифру двоичного числа на основание “2”, возведенное в степень, равную разряду. Таким образом, число 1012 = 1*22 + 0*21 + 1*20 = 4+0+1 = 510.

Хорошо, для машин 2-я система счисления удобнее, но мы ведь часто видим, используем на компьютере числа в 10-й системе. Как же тогда машина определяет какую цифру вводит пользователь? Как переводит число из одной системы в другую, ведь в её распоряжении всего 2 символа — 0 и 1?

Чтобы компьютер мог работать с двоичными числами (кодами), необходимо чтобы они где-то хранились. Для хранения каждой отдельной цифры применяется триггер, представляющий собой электронную схему. Он может находится в 2-х состояниях, одно из которых соответствует нулю, другое — единице. Для запоминания отдельного числа используется регистр — группа триггеров, число которых соответствует количеству разрядов в двоичном числе. А совокупность регистров — это оперативная память. Число, содержащееся в регистре — машинное слово. Арифметические и логические операции со словами осуществляет арифметико-логическое устройство (АЛУ). Для упрощения доступа к регистрам их нумеруют. Номер называется адресом регистра. Например, если необходимо сложить 2 числа — достаточно указать номера ячеек (регистров), в которых они находятся, а не сами числа. Адреса записываются в 8- и 16-ричной системах (о них будет рассказано ниже), поскольку переход от них к двоичной системе и обратно осуществляется достаточно просто. Для перевода из 2-й в 8-ю число необходимо разбить на группы по 3 разряда справа налево, а для перехода к 16-ой — по 4. Если в крайней левой группе цифр не достает разрядов, то они заполняются слева нулями, которые называются ведущими. В качестве примера возьмем число 1011002. В восьмеричной — это 101 100 = 548, а в шестнадцатеричной — 0010 1100 = 2С16. Отлично, но почему на экране мы видим десятичные числа и буквы? При нажатии на клавишу в компьютер передаётся определённая последовательность электрических импульсов, причём каждому символу соответствует своя последовательность электрических импульсов (нулей и единиц). Программа драйвер клавиатуры и экрана обращается к кодовой таблице символов (например, Unicode, позволяющая закодировать 65536 символов), определяет какому символу соответствует полученный код и отображает его на экране. Таким образом, тексты и числа хранятся в памяти компьютера в двоичном коде, а программным способом преобразуются в изображения на экране.

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

8-я система счисления, как и двоичная, часто применяется в цифровой технике. Имеет основание 8 и использует для записи числа цифры от 0 до 7.

Пример восьмеричного числа: 254. Для перевода в 10-ю систему необходимо каждый разряд исходного числа умножить на 8n, где n — это номер разряда. Получается, что 2548 = 2*82 + 5*81 + 4*80 = 128+40+4 = 17210.

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

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

В качестве примера возьмем число 4F516. Для перевода в восьмеричную систему — сначала преобразуем шестнадцатеричное число в двоичное, а затем, разбив на группы по 3 разряда, в восьмеричное. Чтобы преобразовать число в 2-е необходимо каждую цифру представить в виде 4-х разрядного двоичного числа. 4F516 = (100 1111 101)2. Но в 1 и 3 группах не достает разряда, поэтому заполним каждый ведущими нулями: 0100 1111 0101. Теперь необходимо разделить полученное число на группы по 3 цифры справа налево: 0100 1111 0101 = 010 011 110 101. Переведем каждую двоичную группу в восьмеричную систему, умножив каждый разряд на 2n, где n — номер разряда: (0*22+1*21+0*20) (0*22+1*21+1*20) (1*22+1*21+0*20) (1*22+0*21+1*20) = 23658.

Помимо рассмотренных позиционных систем счисления, существуют и другие, например:
1) Троичная
2) Четверичная
3) Двенадцатеричная

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

Однородные позиционные системы счисления

Определение, данное в начале статьи, достаточно полно описывает однородные системы, поэтому уточнение — излишне.

Смешанные системы счисления

К уже приведенному определению можно добавить теорему: “если P=Qn (P,Q,n – целые положительные числа, при этом P и Q — основания), то запись любого числа в смешанной (P-Q)-ой системе счисления тождественно совпадает с записью этого же числа в системе счисления с основанием Q.”

Опираясь на теорему, можно сформулировать правила перевода из P-й в Q-ю системы и наоборот:
  1. Для перевода из Q-й в P-ю, необходимо число в Q-й системе, разбить на группы по n цифр, начиная с правой цифры, и каждую группу заменить одной цифрой в P-й системе.
  2. Для перевода из P-й в Q-ю, необходимо каждую цифру числа в P-й системе перевести в Q-ю и заполнить недостающие разряды ведущими нулями, за исключением левого, так, чтобы каждое число в системе с основанием Q состояло из n цифр.

Яркий пример — перевод из двоичной системы счисления в восьмеричную. Возьмем двоичное число 100111102, для перевода в восьмеричное — разобьем его справа налево на группы по 3 цифры: 010 011 110, теперь умножим каждый разряд на 2n, где n — номер разряда, 010 011 110 = (0*22+1*21+0*20) (0*22+1*21+1*20) (1*22+1*21+0*20) = 2368. Получается, что 100111102 = 2368. Для однозначности изображения двоично-восьмеричного числа его разбивают на тройки: 2368 = (10 011 110)2-8.

Смешанными системами счисления также являются, например:
1) Факториальная
2) Фибоначчиева

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


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

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

Имеется число a1a2a3 в системе счисления с основанием b. Для перевода в 10-ю систему необходимо каждый разряд числа умножить на bn, где n — номер разряда. Таким образом, (a1a2a3)b = (a1*b2 + a2*b1 + a3*b0)10.

Пример: 1012 = 1*22 + 0*21 + 1*20 = 4+0+1 = 510

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

Целая часть:
  1. Последовательно делим целую часть десятичного числа на основание системы, в которую переводим, пока десятичное число не станет равно нулю.
  2. Полученные при делении остатки являются цифрами искомого числа. Число в новой системе записывают, начиная с последнего остатка.

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

Пример: переведем 1510 в восьмеричную:
15\8 = 1, остаток 7
1\8 = 0, остаток 1

Записав все остатки снизу вверх, получаем итоговое число 17. Следовательно, 1510 = 178.

Преобразование из двоичной в восьмеричную и шестнадцатеричную системы

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

В качестве примера возьмем число 10012: 10012 = 001 001 = (0*22 + 0*21 + 1*20) (0*22 + 0*21 + 1*20) = (0+0+1) (0+0+1) = 118

Для перевода в шестнадцатеричную — разбиваем двоичное число на группы по 4 цифры справа налево, затем — аналогично преобразованию из 2-й в 8-ю.

Преобразование из восьмеричной и шестнадцатеричной систем в двоичную

Перевод из восьмеричной в двоичную — преобразуем каждый разряд восьмеричного числа в двоичное 3-х разрядное число делением на 2 (более подробно о делении см. выше пункт “Преобразование из десятичной системы счисления в другие”), недостающие крайние разряды заполним ведущими нулями.

Для примера рассмотрим число 458: 45 = (100) (101) = 1001012

Перевод из 16-ой в 2-ю — преобразуем каждый разряд шестнадцатеричного числа в двоичное 4-х разрядное число делением на 2, недостающие крайние разряды заполняем ведущими нулями.

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

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

Пример: 101,0112 = (1*22 + 0*21 + 1*20), (0*2-1 + 1*2-2 + 1*2-3) = (5), (0 + 0,25 + 0,125) = 5,37510

Преобразование дробной части двоичной системы в 8- и 16-ую

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

Пример: 1001,012 = 001 001, 010 = (0*22 + 0*21 + 1*20) (0*22 + 0*21 + 1*20), (0*22 + 1*21 + 0*20) = (0+0+1) (0+0+1), (0+2+0) = 11,28

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

Для перевода дробной части числа в другие системы счисления нужно обратить целую часть в ноль и начать умножение получившегося числа на основание системы, в которую нужно перевести. Если в результате умножения будут снова появляться целые части, их нужно повторно обращать в ноль, предварительно запомнив (записав) значение получившейся целой части. Операция заканчивается, когда дробная часть полностью обратится в нуль.

Для примера переведем 10,62510 в двоичную систему:
0,625*2 = 1,25
0,250*2 = 0,5
0,5*2 = 1,0
Записав все остатки сверху вниз, получаем 10,62510 = (1010), (101) = 1010,1012
Поделиться публикацией
Комментарии 67
    +2
    Адреса изображений не сильно хорошие.
      +23
      Прямо читаю лекцию по информатике в 9м классе.
        –2
        Что тут информатического? У нас это было в 9 классе на математике. Тут же про числа только.
          0
          Странная у вас математика была. Мы как-то больше арабскими числами в школе оперировали. Если не считать параграф введения в историю математики и некоторые олимпиадные задачи.
            0
            У нас весь лицей странным был (да и остаётся), но я не нахожу странным изучать математику на уроках математики.

            Мы тоже арабскими и в десятичной системе больше, однако это не мешало рассказывать и про другие системы.

            А на информатике мы занимались информатикой, точнее, программированием.
        +11
        … как новый орбит «Школа»...
          +2
          Перезалейте картинки, пожалуйста, вы мне всю ностальгию испортили.
            +15
            Альбина Гавриловна, вы все еще живы?
              +2
              У вас опечатка «1112 = 1*22 + 0*21 + 1*20 = 4+0+1 = 510.» Нужно «1012 = 1*22 + 0*21 + 1*20 = 4+0+1 = 510.»
                0
                Спасибо. Исправил.
                +1
                у индусов эту систему чисел заимствовали арабы, от которых её переняли европейцы. По каким-то причинам, в Европе за этой системой закрепилось название “арабская”.

                Видимо, потому и закрепилась арабской. Им не было дела до того, у кого переняли систему арабы. )

                Статья очень интересная. Люблю подобные темы. Спасибо!
                  0
                  Может не то чтобы не было дела, а просто не знали что арабы позаимствовали у индусов.
                  +13
                  Помимо рассмотренных позиционных систем счисления, существуют и другие, например:
                  1) Троичная
                  2) Четверичная
                  3) Двенадцатеричная

                  Помимо рассмотренных чисел 2 и 10 бывают и другие, например: 3, 4, 12.
                    –5
                    Помимо излишнего проявления ума бывает и правильное понимание написанного.
                      +6
                      … которым целевая аудитория данного текста может и не обладать, ввиду того, что она с темой не знакома. Ну вот что стоило автору написать, например «иногда используются и другие» вместо «существуют и другие».
                        +2
                        Не думаю, что среди целевой аудитории могут быть настолько недалекие люди, которые могут подумать, что, например, пятиричная система счисления невозможна.

                        Но вы таки правы, ваш вариант конкретнее звучит.
                    +2
                    Ждем статью про нега-позиционные системы счисления и перевод чисел из них в позиционные системы счисления :)

                    Статья просто отличная, большое спасибо!
                      +2
                      Почему в «Смешанные системы счисления» написано про перевод из P^N в P и обратно?
                        0
                        Число в смешанной системе счисление не обязательно набор из цифр разных систем. В конце главы про смешанные системы я добавил представление числа в 2-8 системе: (10 011 110)2-8. Оно является и восьмеричным и 2-м. Различие — в отображение чисел, так как мы могли просто написать 10011110, являющееся двоичным.

                        В качестве примера возьмем число (100 0101)2-10 = 4510. Если бы мы рассматривали (1000101)2, то в 10-й системе оно имело бы вид: (1000101)2 = 1*26+0*25+0*24+0*23+1*22+0*21+1*20 = 64+0+0+0+0+4+1=6910, что не равно числу 4510
                        +3
                        Еще из известных и «почти» используемых непозиционных систем счисления — система остаточных классов.
                          +1
                          Спасибо вам, погуглив по словам «система остаточных классов», попал на страницу «Система счисления» Википедии, где тот же материал изложен лаконичнее и понятнее.
                            0
                            Я указал только основные, поскольку если рассматривать остальные — статья получится крайне большой.
                              0
                              Быть может, но упоминать непозиционные системы счисления, как мне кажется, стоит лишь с целью рассказать про систему остаточных классов. Иначе это детский сад
                            +1
                            По-моему у Кнута это всё написано гораздо лаконичнее и интереснее. И всякие прелести типа уравновешенной троичной системы есть.
                              +14
                              осталось на хабре опубликовать статью «Основы сложения двузначных чисел в столбик»
                                +1
                                Ещё любопытная штука, когда основание системы счисления отрицательное.
                                  0
                                  Это как?
                                    +4
                                    Например, вот так: основание системы счисления -2, тогда в такой нега-двоичной системе число 111 будет в десятичной равно:

                                    1 * (-2)^0 + 1 * (-2)^1 + 1 * (-2)^2 = 1 * 1 + 1 * (-2) + 1 * 4 = 1 — 2 + 4 = 3

                                    или 11

                                    1 * (-2)^0 + 1 * (-2)^1 = 1 * 1 + 1 * (-2) = 1 — 2 = -1

                                    Для представления отрицательных чисел в такой системе счисления не нужен унарный минус: число с нечётным числом цифр будет положительное, а с чётным числом цифр — отрицательное.
                                  –1
                                  Эх, ностальгия. У нас контрольные по этой муре когда-то были…

                                  Но не увидел самого интересного и полезного.

                                  1. Почему перешли с восьмеричной на шестнадцатеричную систему?

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

                                  2. Почему применяли именно восьмеричную и шестнадцатеричную системы?

                                  Во-первых, запись числа получается компактнее, а перевод в двоичную (используемую в ЭВМ) очень простой. Во-вторых, основания 8 и 16 близки к привычной нам десятичной системе.

                                  3. Нет примера перевода из восьмеричной в шестнадцатеричную и наоборот. Хотя это очевидно, но всё-таки.
                                    0
                                    Касаемо 3-его пункта. Пример есть, правда из 16-ой в 8-ю — сделайте, пожалуйста, поиск по странице: «В качестве примера возьмем число 4F516. Для перевода в восьмеричную систему».

                                    Причина, по которой не выделил этот перевод в отдельную главу — размер статьи. Учитывая, что я приводил ранее пример преобразования из шестнадцатеричной в восьмеричную, рассмотрел перевод из 2-ой в 8-ю, из 2-ой в 16-ю и обратно, я посчитал, что лучше опустить этот пункт.
                                      0
                                      В таком случае, слишком ного переводов из двоичной и в двоичную. Прикладной пользы от этого сейчас нет, по моему скромному мнению.

                                      Заметка понравилась, я не критикую, просто хотелось дополнить.
                                    0
                                    >А совокупность регистров — это оперативная память

                                    а по-моему, это все еще регистры процессора.
                                      0
                                      Набор простых безымянных регистров это обычно оперативная память. Регистры, кстати, не обязаны принадлежать процессору и могут располагаться во внешнем устройстве и отображаться в память или быть доступны через порты (для x86) или иным способом.
                                      0
                                      Для хабра не помешали бы примеры конверсии «неудобных» дробных десятичных в двоичные (иначе зачем вся статья?)…
                                        0
                                        >Прочитав множество публикаций, я был удивлен отсутствием единой, написанной простым языком, статьи по столь базовому материалу.

                                        www.alleng.ru/d/comp/comp48.htm

                                        Материал и вправду школьный.
                                          +1
                                          >для обозначения чисел 1, 5, 10, 50, 100, и 1000 используются заглавные латинские буквы I, V, X, C, D и M соответственно
                                          у вас тут недочет один: 50 — это L, а D — это 500…
                                            0
                                            Верно. Спасибо.
                                              0
                                              Пожалуйста, еще про схему Горнера напишите (в вопросе перевода систем).
                                                0
                                                Извините, но нет. Я дал основы, которые помогут вам при более детальном изучении этой темы. В добавок, удовлетворив вашу просьбу, я буду вынужден выполнить и все остальные.
                                            0
                                            Помимо цифирных, существуют и буквенные (алфавитные) системы счисления, вот некоторые из них:
                                            1) Славянская
                                            2) Греческая (ионийская)


                                            Пожалуйста, расскажите о славянской?
                                            0
                                            А если у нас система счисления 64-тиричная (0..9a..zA..Z)
                                            как например перевести 1Ax в десятичную и наоборот???
                                              +1
                                              Перевод в 10-ю: умножаем каждый разряд числа 1Ax на основание 64n, где n — номер разряда.

                                              Перевод из 10-й в 64-ю: делим исходное число на основание 64, согласно правилам из главы «Преобразование из десятичной системы счисления в другие»
                                                0
                                                >умножаем каждый разряд числа 1Ax на основание 64n, где n — номер разряда.
                                                иными словами где-то так:
                                                1Ax = 1 * 643 + 10 * 642 + 61 (x)
                                                  0
                                                  1Ax = 1·64²+36·64+33
                                                    0
                                                    спасибо за пример
                                              –1
                                              а где в разделе «Преобразование из десятичной системы счисления в другие» десятичная система то?
                                                +1
                                                Считаю, что незаслуженно обошли вниманием гибридную 20рично-5ричную систему счисления Майя.
                                                ИМХО, она гораздо нагляднее вавилонской, и без грязных хаков, и с нулём.
                                                  0
                                                  ну и да кучи — можно было рассказать про пятеричную Римскую систему счисления (не знаю к какой системе ее отнести, гибридная?)
                                                    0
                                                    что это за система такая?
                                                      0
                                                      1 I лат. unus
                                                      5 V лат. quinque
                                                      10 X лат. decem
                                                      50 L лат. quinquaginta
                                                      100 C лат. centum
                                                      500 D лат. quingenti
                                                      1000 M лат. mille

                                                      I, II, III, IV, V, VI, VII, VII, IX
                                                      X, XI, XII, XIII,XIV, XV, XVI, XVII, XVIII,XIX,XX

                                                      (40)XL, XLI,…, (49) XLIX,
                                                      L, LI, LII…

                                                      (90) XC, XCI,…
                                                      100 C, CI…
                                                        0
                                                        говорят, что существуют знаки описания чисел 5000 10 000 и 50 000, но источник утерян
                                                          0
                                                          вот эти зсимволы: ↀ ↁ ↂ
                                                            0
                                                            чем это отличается от описанной в статье и чем она пятиричная?
                                                        0
                                                        и еще на Руси практиковалась двенадцатиричная система счисления,
                                                        отсюда и дюжина пошла. Считали большим пальцем по косточкам пальцев этой же ладони.
                                                      0
                                                      «По каким-то причинам, в Европе за этой системой закрепилось название “арабская”.»
                                                      Леонардо Пизанский, также известный под прозвищем Фибоначчи (а это именно прозвище) учился у арабов, т.к. его отец с ними торговал. Там он перенял систему счисления и назвал её арабской, естественно, не углубляясь в суть вопроса.
                                                        0
                                                        > А совокупность регистров — это оперативная память.
                                                        Слава богу, это не так :)
                                                        А так кое-что новое узнал, спасибо. Вот если бы вы добавили 2 предложения про то как Инки использовали кипу было бы еще интереснее.
                                                          0
                                                          Не хватает упоминания о системах счисления с иррациональным основанием.
                                                            0
                                                            Я думаю, что фиббоначиеву систему нельзя отнести к смешанным в вашей классификации. У нее в каждой позиции либо 0, либо 1, т. е. набор допустимых символов разряда везде один и тот же.
                                                              0
                                                              В фибоначчиевой системе счисления основаниями являются числа Фибоначчи: 1, 2, 3, 5, 8 и т.д. Допустимые коэффициенты: 0 и 1. Смешанная система — позиционная. Согласно определению, каждый разряд позиционной системы умножается на её основание, возведенное в степень, равную номеру разряда. В системе фибоначчи — каждый разряд — это число с новым основанием, соответсвующим ряду фибоначчи. Таким образом, каждый разряд числа (a1a2a3)F в фибоначчиевой системе счисления можно представить, как: (a1*F0)(a2*F0)(a3*F0).
                                                                0
                                                                Сэр, я в курсе принципов записи фибоначчиевой системы счисления. Вот вы пишете в посте «Смешанная система — в каждом разряде (позиции) числа набор допустимых символов (цифр) может отличаться от наборов других разрядов». В фибоначчиевой системе счисления в любом разряде набор допустимых символов один и тот же. Почему же она тогда смешанная?
                                                                  0
                                                                  "<...>может отличаться <...>". Ранее рассматривалась (2-8)-я система, которая состоит из элементов двоичной системы, тем не менее, она смешанная. Не обязательно использовать весь алфавит каждой системы счисления, которая применяется. При условии, когда мы видим схожесть — необходимо искать другие признаки, которые помогут сделать правильный вывод. В данном случае — это основания, которые при записи числа в фибоначчиевой системе, преимущественно, опускаются.
                                                              0
                                                              Исправление: (a1*F20)(a2*F10)(a3*F00).
                                                                0
                                                                Статейка доставила удовольствие… понастольгировать. В детстве, помню, меня очень увлекало разнообразие и красочность непозиционных систем. Была энциклопедия толстенькая, называлась вроде «Аванта. Математика» (где-то 2000г.), там с картинками рассказывалось и про египетскую, и про шумерску, и, что меня особо впечатлило, про систему племени (кажется) майя. Последняя вроде и не позиционная, но, с другой стороны, смешанная (если не изменяет память, майя использовали точки и горизонтальные черточки, записанный друг под другом, черточка значила 5, точка — 1, таким образом число представлялось такой себе колонкой вертикальной; нижний разряд значил от 0 до 20, второй значил от 0 до 18 умножить на 20, третий разряд — от 0 до 20 умножить на 20*18; в то время как все народы Евразии использовали только 1-10-100-1000-… и 1-60-3600-… у Шумеров, то есть степени одного числа, майя использовали смешанно 20 и 18 в качестве основы)

                                                                Хорошая была книга, для детей в самый раз, не сложно, без каких-либо формул.
                                                                  0
                                                                  Есть замечательная система по основанию золотого сечения F=(sqrt(5)+1)/2. Позиционная, с цифрами 0 и 1. Обладает тем свойством, что любое натуральное число имеет в ней конечную запись:
                                                                  2=1.11
                                                                  3=11.01
                                                                  4=101.01
                                                                  5=101.1111
                                                                  и т.д.

                                                                    0
                                                                    Хорошая статья. Я смотрел по этой sysadm.pp.ua/internet/numeral-systems.html. Там есть формулы и таблички не плохие, может понадобиться.

                                                                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                    Самое читаемое