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

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

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

Начнем с определения системы счисления. Система счисления — это совокупность правил записи чисел цифровыми знаками.
Системы счисления бывают позиционные и непозиционные. В настоящее время и в технике и в быту широко используются как
позиционные, так и непозиционные системы счисления. Рассмотрим сначала примеры непозиционных систем счисления.

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

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

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

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

Значение цифры в позиционной системе счисления зависит от её позиции в записываемом числе. В позиционной системе
счисления появляются два очень важных понятия — основание системы счисления и вес цифры. Дело в том, что в
позиционной системе счисления число представляется в виде формулы разложения:

pnnn-1n-12211-1-1-2-2-k-k

где p —  основание системы счисления
    pi — вес единицы данного разряда
    ai — цифры, разрешённые в данной системе счисления.

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

nn-121-1-2-k

где ai — цифры данной системы счисления, а цифра, соответствующая единицам определяется по
положению десятичной запятой (или десятичной точки в англоязычных странах). Каждая цифра, использованная в записи числа,
называется разрядом.

Какие же системы счисления применяются в настоящее время? Первый ответ, который я ожидаю — это десятичная
система счисления. А ещё? Да, да не удивляйтесь! Мы широко используем и другие системы счисления! Достаточно посмотреть
себе на левую руку. Там мы увидим часы. Сколько минут помещается в часе? Шестьдесят! Сколько секунд помещается в минуте?
Шестьдесят! Налицо признаки шестидесятеричной системы счисления. Это наследование древней вавилонской системы счисления,
которую вместе с компасом и часами европейцы заимствовали от арабов.

А еще примеры? Да сколько угодно! Картушка компаса делится на восемь румбов. Чем не восьмеричная система счисления?
А давно ли в России отказались от полушек (четверть копейки) или грошей (половина копейки)? А следующее значение
монеты — две копейки! Чем не двоичная система счисления?

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

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

Мы знаем, что компьютер использует числа для представления любой информации. Например, цвета хранятся в виде трёх чисел — яркости красной, зелёной и синей компонентов цвета. На каждый компонент отводится восемь двоичных позиций, поэтому максимальная яркость компонента равна 11111111₂ или 255. Цвет целиком описывается большим 24-х разрядным двоичным числом, например, 11111010 10000000 01110010. Это цвет Salmon из таблицы цветов HTML, он же лососевый цвет.

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

Кажется, что цвет удобнее записать как десятичное число 16416882. Хотя оно занимает меньше места, по нему трудно понять, какова яркость каждого компонента.

Чтобы записывать большие двоичные числа, программисты придумали использовать шестнадцатеричную систему счисления:

  • В десятичной системе десять цифр, а в шестнадцатеричной — шестнадцать
  • В десятичной системе соседние позиции отличаются в десять раз, а в шестнадцатеричной — в шестнадцать раз

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

Основание 16 Основание 10 Основание 2
1 1 1
2 2 10
3 3 11
4 4 100
5 5 101
6 6 110
7 7 111
8 8 1000
9 9 1001
A 10 1010
B 11 1011
C 12 1100
D 13 1101
E 14 1110
F 15 1111

Шестнадцатеричная система счисления хороша тем, что группа из четырёх двоичных цифр кодируется одной шестнадцатеричной цифрой. Таким образом, лососевый цвет выглядит как:

В шестнадцатеричной системе счисления он записывается так:

Вначале трудно понять, каков порядок у шестнадцатеричного числа FA. Как и в случае с двоичными числами, программисты обычно помнят порядки круглых шестнадцатеричных чисел. Но можно не запоминать, а подглядывать в эту таблицу:

Шестнадцатеричное число Десятичное число
1016 16
2016 32
3016 48
4016 64
5016 80
6016 96
7016 112
8016 128
9016 144
A016 160
B016 176
C016 192
D016 208
E016 224
F016 240
10016 256
100016 4 096
1 000016 65 536
10 000016 1 048 576
100 000016 16 777 216
1000 000016 268 435 456
1 0000 000016 4 294 967 296

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

Сложение и вычитание шестнадцатеричных чисел

Сложение и вычитание шестнадцатеричных чисел проходит аналогично действиям над десятичными числами.
Приведем несколько простых примеров:

A + 1 = B       B - A = 1       F + 1 = 10       A + C = 16
B - 2 = 9       7 + 7 = E       F + F = 1E       10 - 8 = 8

Рассмотрим, как получается 1Eh в результате сложения F + F.
Запишем результат операции в десятичном виде: F + F = 15 + 15 = 30.

Проверим, сколько шестнадцатеричных десятков содержится в числе 30: 30 / 16 = 1 (один десяток).
Шестнадцатеричный десяток 10h соответствует десятичному числу 16.
Проводим вычитание 30 — 16 и получаем остаток 14, откуда: 14 + 16 = Eh + 10h = 1Eh.

Числа с большим числом разрядов можно складывать «столбиком»:

1          1        1           1111         1 1
 C        2A7        F451        BCD8        BCD8
+D       +92A       +CB03       +FAE9       +0509
19        BD1       1BF54       1B7C1        C1E1

Вычислите «столбиком» следующие примеры, а результаты проверьте в Debug:

3F8h + AB9h       4E5h + 4F3h       DF8h - AB9h
FF7h + 8BFh       FFFh + FFFh       FF7h - 8BFh
CD0h + A82h       FFFh + 001h       CD2h - A82h

Отрицательные числа

Ранее было отмечено, что FFFFh фактически равно -1.
Однако если перевести число FFFFh в десятичную форму, то получится 65535.
Почему так происходит? Действительно ли FFFFh ведет себя как отрицательное число?

Пусть так, тогда если сложить FFFFh и 5, то должно получиться 4:

-h 5 FFFF
0004 0006

Похоже, Debug действительно обращается с FFFFh, как с -1.
Рассмотрим механизм сложения чисел 5 и FFFFh, при суммировании «столбиком»:

1111
 0005
+FFFF
10004   5 + (-1) = 4

Если игнорировать единицу в старшем разряде, то получается правильный ответ 5 + (-1) = 4.
Debug сохраняет четыре младшие цифры результата.
Старший (пятый) разряд запоминается в специальной ячейке памяти и называется — «ПЕРЕПОЛНЕНИЕ».

FFFF -1
FFFE -2
FFFD -3
FFFC -4
FFFB -5
FFFA -6
FFF9 -7
FFF8 -8
FFF7 -9
FFF6 -A
FFF5 -B
FFF4 -C
FFF3 -D
FFF2 -E
FFF1 -F
FFF0 -10

Сложение чисел, больших чем 8000h дает переполнение. Такие числа ведут себя аналогично отрицательным числам:

1111                       1111
 0008                       FFF0
+FFFA                      +8FFF
10002   8 + (-6) = 2       18FEF   -10h + (-7001h) = -7011h

В последнем примере установлено соответствие чисел 8FEFh и -7011h.
Как проверить справедливость этого утверждения?
Ранее отмечалось, что FFFFh это (-1), значит FFFEh это (-2) и т.д.
В приведенной таблице представлен ряд отрицательных чисел.
Если ряд продолжить, то при достижении числа 8FEFh мы увидим его отрицательный эквивалент: -7011h

Любой язык программирования позволяет оперировать двумя типами чисел: знаковыми и беззнаковыми.
Представление числа зависит от конкретной ситуации.
Например: FFFAh можно рассматривать как число без знака, и как отрицательное число -6.
Если в программе нужны отрицательные числа, то диапазон 0 … FFFFh делится на две части:

   0h ... 7FFFh - положительные числа
8000h ... FFFFh - отрицательные числа

Отрицательный аналог числа 8FEFh называется его дополнительным кодом, и выражается числом -7011h.
Рассмотрим алгоритм нахождения дополнительного кода:

  1. Инвертировать исходное число, т.е. заменить все цифры числа на противоположные:F => 0, E => 1, D => 2, C => 3, B => 4 и т.д. После инверсии 8FEFh выглядит так: 7010h
  2. К инверсному числу добавить единицу: 7010h + 1 = 7011h — получилось искомое число.

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

0 ... FFFFh или 0 ... 65535

Если в вычислениях требуются отрицательные числа, то предыдущий диапазон смещается в отрицательную область:

-8000h ... 7FFFh или -32768 ... 32767

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

Вычислите дополнительный код следующих чисел:

FF00h, AD3Fh, 9000h, EDF4h, B348h

Что такое системы счисления

Системой счисления называется система записи чисел с помощью знаков по определенным правилам.

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

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

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

Десятичная система использует арабские цифры. Предположительно арабская система записи чисел возникла в Индии. Индийскую систему записи чисел описал Аль Хорезми в своем трактате «Об индийском счете».

Рис. 1. Портрет Аль Хорезми.

Системы счисления в информатике не ограничиваются применением десятичных цифр, самыми распространенными системами являются двоичная, восьмеричная и шестнадцатеричная системы счисления.

В двоичной системе счисления все просто. Основание равно 2. Обозначение чисел выполняется только двумя символами 0 и 1.

Восьмеричная система использует 8 знаков для обозначения чисел: 0, 1, 2, 3, 4, 5, 6, 7

И числовой ряд восьмеричных чисел выглядит так: 0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12 … Следует обратить внимание, что после 7 идет двузначное число 10, так как знаков всего восемь и происходит сдвиг разрядной сетки

Шестнадцатеричная система имеет основание 16. Она применяет в качестве символов арабские цифры от 0 до 9 и затем буквы латинского алфавита A, B, C, D, E, F. В числовом ряду шестнадцатеричных чисел после 9 идет А, а после F идет 10.

Тогда возникает вопрос, как определить, в какой системе счисления, например число 107. Цифры 0, 1, 7 используются как в восьмеричной, так и в десятичной и шестнадцатеричной системе счисления. Для того чтобы различать системы, существует специальное обозначение систем счисления. Числа помечаются индексом с основанием системы. Так, 1078 – это восьмеричное число, 10710 – десятичное число, 10716 – шестнадцатеричное число.

в истории существуют примеры использования и других систем счисления. Так, некоторые коренные культуры Африки и Австралии используют двоичные и троичные системы. Индейцы Юки пользуются четверичной системой счисления, пятеричная система счисления распространена больше (по количеству пальцев на руке), ее элементы встречаются у древних персов и ацтеков, у индейцев племени Таманакос. У древних Шумеров использовалась шестидесятеричная система счисления, разбивка часа на 60 минут и минуты на 60 секунд, вероятно, отголоски этой системы.

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

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

значение2 значение10
0000
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9

Пример. Переведем число 111100100110001 из двоично-десятичной системы в десятичную. Для начала допишем недостающий ноль с левой стороны и разделим по 4 символа: 0111 1001 0011 0001. Далее находим соответствующие десятичные значения в таблице и получаем: 7931.

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

Пример. Десятичное число 1234 переведем в двоично-десятичную. Находим по таблице все соответствия: символу 1 соответствует 0001, символу 2 — 0010, символу 3 — 0011 и символу 4 — 0100. В результате получаем: 0001001000110100.

Виды систем счисления

Существует несколько различных систем счисления, которые используются для представления чисел и информации в компьютерной науке:

  1. Десятичная система счисления — наиболее распространенная система счисления, которую мы используем в повседневной жизни. Она основана на числах от 0 до 9 и использует позиционную нотацию, где каждая позиция числа имеет определенное значение в зависимости от ее положения.
  2. Двоичная система счисления — основная система счисления в компьютерной науке. Она использует только две цифры — 0 и 1 — и основана на системе двоичной арифметики. Двоичные числа обычно представляются с помощью комбинаций нулей и единиц, называемых битами.
  3. Шестнадцатеричная система счисления — система счисления, которая использует 16 цифр: от 0 до 9 и от A до F. Она используется в компьютерных системах для более удобного представления двоичных значений. В шестнадцатеричной системе каждая цифра соответствует 4-м битам двоичной системы.
  4. Восьмеричная система счисления — система счисления, которая использует 8 цифр: от 0 до 7. Она редко используется в компьютерной науке, но иногда встречается в некоторых программных языках или системах счисления для более компактного представления чисел.

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

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

Каждая позиция числа в десятичной системе имеет значение, увеличивающееся в 10 раз по сравнению с предыдущей позицией. Например, число 1234 в десятичной системе может быть записано как 1 * 10^3 + 2 * 10^2 + 3 * 10^1 + 4 * 10^0.

Десятичная система счисления широко используется в нашей повседневной жизни для представления различных величин: времени, денежных сумм, количества предметов и т.д. Она также широко применяется в программировании и математике.

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

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

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

В двоичной системе счисления каждая цифра имеет свой вес, который определяет значение этой цифры. Начиная с младшего разряда, каждый следующий бит умножается на степень двойки. Например, в двоичном числе 101010, первый бит (справа) имеет вес 2^0 (1), второй бит – вес 2^1 (2), третий бит – вес 2^2 (4), и так далее.

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

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

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

В шестнадцатеричной системе счисления каждый разряд числа имеет вес, равный степени 16. Начиная с младших разрядов, каждому разряду соответствует своя весовая степень — от младшего к старшему разряду это 160, 161, 162 и так далее. Это позволяет компактно и удобно представлять большие числа в системе счисления, основанной на степени 16.

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

В шестнадцатеричной системе обычно используются буквы A, B, C, D, E и F для представления чисел, которые больше 9. Например, число 10 записывается как A, число 15 — как F, и так далее.

Шестнадцатеричная система счисления часто применяется при работе с цветами в графическом дизайне и веб-разработке. Например, цвета в формате RGB (красный, зеленый, синий) часто записываются в шестнадцатеричной системе, где каждая компонента цвета представлена двумя шестнадцатеричными цифрами (от 00 до FF).

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

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

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

Из десятичной в двоичную. Исходное число 230, основание системы «2». Производим последовательное деление:

  • 230 ÷ 2 = 115 (в остатке );
  • 115 ÷ 2 = 57 (в остатке 1);
  • 57 ÷ 2 = 28 (в остатке 1);
  • 28 ÷ 2 = 14 (в остатке );
  • 14 ÷ 2 = 7 (в остатке );
  • 7 ÷ 2 = 3 (в остатке 1);
  • 3 ÷ 2 = 1 (в остатке 1);
  • 1 ÷ 2 = 0 (в остатке 1).

Записываем остатки от деления на 2 в обратном порядке и получаем следующую последовательность: 11100110. Полученный результат является двоичным представлением числа 230.

Из десятичной в восьмеричную. Исходное число 789, основание системы «8». Производим последовательное деление:

  • 789 ÷ 8 = 98 (в остатке 5);
  • 98 ÷ 8 = 12 (в остатке 2);
  • 12 ÷ 8 = 1 (в остатке 4);
  • 1 ÷ 8 = 0 (в остатке 1).

Записываем остатки от деления на 8 в обратном порядке и получаем следующую последовательность: 1425. Полученный результат является восьмеричным представлением числа 789.

Из десятичной в шестнадцатеричную. Исходное число 7000, основание системы «16». Производим последовательное деление:

  • 7000 ÷ 16 = 437 (в остатке 8);
  • 437 ÷ 16 = 27 (в остатке 5);
  • 27 ÷ 16 = 1 (в остатке 11);
  • 1 ÷ 16 = 0 (в остатке 1).

Записываем остатки от деления на 16 в обратном порядке. Если остаток от деления больше 9, то вместо числа записываем букву, соответствие чисел и букв представлено ниже в таблице. В результате получаем следующую последовательность: 1B58. Полученный последовательность является шестнадцатеричным представлением числа 7000.

число буква
10 A
11 B
12 C
13 D
14 E
15 F

Преобразование чисел в строки в двоичной, восьмеричной и шестнадцатеричной системе счисления.

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

  • встроенная функция (например, в языке программирования),,
  • строковый метод, Встроенные функции, f строка

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

Встроенные функции bin(), oct(), hex()

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

  • Двоичное число:
  • Октал:
  • Шестнадцатеричное число:

Каждый из них возвращает строку со следующими префиксами

  • Двоичное число:
  • Октал:
  • Шестнадцатеричное число:

Если вам не нужен префикс, используйте slice для извлечения строки, стоящей за ним, или используйте format(), как объясняется далее.

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

str() — Built-in Functions — Python 3.10.0 Documentation

Встроенная функция format(), строковый метод str.format(), f строка

Встроенная функция format() и строковые методы str.format() и f-string также могут преобразовывать числа в двоичные, восьмеричные и шестнадцатеричные строки.

format() — Built-in Functions — Python 3.10.0 Documentation

Указав второй аргумент format() следующим образом, его можно преобразовать в двоичную, восьмеричную и шестнадцатеричную строки соответственно.

  • Двоичное число:
  • Октал:
  • Шестнадцатеричное число:

Если вы хотите получить строку с префиксом 0b,0o,0x, добавьте # к строке спецификации форматирования.

Также можно заполнить 0 любым количеством цифр

Обратите внимание, что при заполнении нуля префиксом необходимо учитывать количество символов для префикса (два символа)

Для преобразования также можно использовать строковый метод str.format().

str.format() — Built-in Functions — Python 3.10.0 Documentation

Начиная с Python 3.6, вы также можете использовать строку f.

Преобразование отрицательного целого числа в строку в формате двойного дополнения.

Когда отрицательное целое число преобразуется в двоичную или шестнадцатеричную строку с помощью bin() или format(), абсолютное значение будет иметь знак минус.

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

  • 4bit:
  • 8bit:
  • 16bit:

Классификация

Изобретение этого типа нумерации приписывается древним шумерам. Здесь значение числа зависит от позиции, занимаемой этим числом. Возьмем для примера 19. Переставьте числа и получите 90.

Позиционные

Системы позиционирования и их использование в математике и информатике, например:.

Здесь позиция числа не важна; количественный эквивалент числа определяется буквой числа.

  1. Десятичная – все вы её прекрасно знаете и изучали с первого класса. В качестве алфавита здесь используются цифры от 0 до 9.
  2. Двоичная – счисление введенное в семнадцатом веке великим математиком Вильгельмом Лейбницем. В данный момент нашло широкое применение в персональных компьютерах и цифровой технике. Состоит всего из двух знаков 0 и 1.
  3. Третичная – состоит из 0, 1 и 2 либо латинских букв A, B, C. На данный момент нигде не применяется. Однако в 1959 году Московским университетом на её основе был выпущен малый компьютер “Сетунь”.
  4. Восьмеричная – счисление, широко применяющееся в высокоуровневых языках программирования (например, Java и Python) и разработке цифровой аппаратуры. Свою популярность заслужила из-за легкого перевода в цифровой (двоичный) код. Состоит из цифр от 0 до 7.
  5. Двенадцатеричная – распространена на территории Индии и Тибета. Счисление построено на пальце-фаланговом методе счета, при котором большим пальцем считают фаланги той же руки. Попробуйте сами посчитать фаланги, и вы убедитесь, что их действительно 12. Постепенно полностью заменяется десятичной.
  6. Шестнадцатеричная – счисление используется в низкоуровневых языках программирования (язык Assembler’а) в информатике. Также в 16-ом виде представляются символы в стандарте Юникода. В её алфавит входят числа от 0 до 9 и латинские буквы A, B, C, D, E и F.

Непозиционные

Пример системы нумерации без позиционирования

Описав классификацию, мы можем теперь говорить о таких понятиях, как база.

  1. – состоит из одного символа. В пример можно привезти зарубки на дереве. Также, скорее всего, каждый из вас видел, как в фильмах люди заключенные в тюрьме считают дни своего заключения, рисуя палочки на стене. Всё это примеры унарного исчисления.
  2. Римская – состоит из латинских букв I,X,L,D и M. Нумерация построена с помощью сложения и вычитания. Здесь договорились, что для сложения после большей цифры надо ставить меньшую, а для того чтобы отнять, меньшую цифру ставят перед большей. Например, XI – 11, а IX – 9. – непозиционная нумерация, где цифры представлялись иероглифами.

Смешанные

Этот материал в школьную программу не входит и его достаточно сложно объяснить школьникам, но я все-таки попробую. В смешанной системе исчисления числа с основанием P можно представить числами с основанием Q. Также здесь должно выполняться неравенство Q

Позиционная система счисления: что это

— 2 0 умножить на 2. Коэффициент равен a

— 2 n-2 + … + a

  • Простота запоминания и изображения чисел.
  • Удобство совершения математических и логических операций.
  • Миниатюрная запись огромных значений.

а остаток равен

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

Полученный коэффициент снова делится на 2, а остаток является a

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

Если продолжить этот процесс деления, то на n-ом шаге мы получим набор цифр

которые являются частью двоичного представления исходного числа и соответствуют остатку от последовательного деления на 2.

100112Итак, чтобы перевести десятичное целое число в двоичную систему счисления, нужно разделить данное число и получившиеся целые части последовательно на 2, пока не получится часть, равная нулю. Исходное число в двоичной нотации составляется путем записи получающихся остатков один за другим, начиная с последнего.10.

Пример 4. Переведем десятичное число 11 в двоичную систему счисления. Описанная выше последовательность операций (алгоритм перевода) может быть представлена следующим образом:

Если мы запишем остаток от деления в направлении, указанном стрелкой, то получим: 11

= 1011n-1Пример 5. Если десятичное число достаточно велико, то более подходящей является следующая нотация вышеприведенного алгоритма:n-2= 101101011Восьмеричная система счисления — это позиционная система счисления, основанная на числе 8. Цифры восьмеричной системы счисления — 0, 1, 2, 3, 4, 5, 6, 7.n-1= 1011010111Например: 1063..

= 1 — 8 3 + 0 — 8 2 + 6 — 8 1 + 3 — 8 0 = 5631.

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

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

Пример 6. Переведем десятичное число 103 в восьмеричную систему счисления.

База: q = 16.

Алфавит: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, C, C, D, E, F.10Здесь только десять из шестнадцати цифр имеют условное обозначение 0,…, 9. Первые пять букв латинского алфавита обычно используются для записи цифр с десятичными эквивалентами 10, 11, 12, 13, 14, 15.2.

Поэтому обозначение 3AF

36310означает:2

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

= 3 — 16 2 + 10 — 16 1 + 15 — 16 0 = 768 + 160 + 15 = 943

Пример 7. Переведем десятичное число 154 в шестнадцатеричную систему счисления.

Система, на которой основаны компьютеры, была изобретена гениальным немецким ученым Г.В. Лейбницем (до 19 века!). Он изобрел и описал СС, в которой все расчеты производятся с использованием d8Объяснение. Расширенная форма символики 579: 5*10 2 +7*10 1 +9*10 0 = 57910.

Источник

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

А чтобы было проще, мы используем готовую таблицу коэффициентов, равных 2.

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

Сначала запишите числа, равные двум, начиная с наибольшего:

Затем нужно вычесть из числа максимальную степень двойки и поставить 1, если в основании есть единица, или 0, если ее нет. Перевод 579

Обратный путь еще проще. Посчитайте количество цифр — это мощность от 2 д о-1. И так далее. И проще использовать одну и ту же таблицу:

Если оно на 1 больше, то число начинается и заканчивается 1, а внутри — сплошной 0.16Основание этой системы — 8, а числа в восьмеричной системе — 0-7. Эта система счисления является тематической и целочисленной. Он используется в областях, связанных с цифровыми технологиями, особенно с программным обеспечением Linux (права доступа, исполнение).

3AF16Это 16-ричная система целых чисел (шестнадцатеричные цифры 0-9 и буквы от A до F), используемая в приложениях низкоуровневого компьютерного программирования и документирования, поскольку она представляет собой 8-битный байт и для записи требуется 2 шестнадцатеричные цифры.10.

В стандарте Unicode используется 4 или более 16 символов SS.

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

Ряд систем счисления, существовавших ранее и используемых в наше время, можно разделить на непозиционные и позиционные. Знаки, используемые для записи чисел, называются цифрами.

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

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

Однако наиболее распространенной была индийско-арабская десятичная система. Коренные американцы были первыми, кто использовал ноль для обозначения позиционного значения количества в строке чисел. Эта система называется десятичной, потому что в ней десять цифр.

Разницу между позиционной и непозиционной системами счисления проще всего понять, сравнив два числа. В позиционной системе счисления сравнение двух чисел происходит следующим образом: в оцениваемых числах цифры, находящиеся в одной позиции, сравниваются слева направо. Больший разряд соответствует большему значению числа. Например, для чисел 123 и 234 1 меньше 2, поэтому число 234 больше числа 123. В непозиционной системе счисления это правило не действует. Примером этого является сравнение двух чисел IX и VI. Хотя I меньше V, IX больше VI.

Хакерский редактор Hacker Viewer (Hiew) .

Для визуального восприятия шестнадцатеричного кода воспользуемся замечательным простым, но достаточно функциональным DOS редактором Hacker Viewer (Hiew). Вы найдёте его в папке D:\UTILS\HIEW\ (я надеюсь, что наш архив программ DOS-1.rar уже скачан и DOSBox установлен и запущен).

Запускаем HIEW (Hacker Viewer).

Инструкцию по пользованию Hiew для хакеров от Криса Касперского вы найдёте в папочке readme. Пользоваться редактором просто и удобно.

Откроем с помощью Hiew нашу программу PRG.COM (выбор файлов — F9). При помощи F4 выбираем режим отображения информации HEX (как вы уже знаете, шестнадцатеричный режим). Можете с помощью F4 или Enter по переключаться между режимами отображения.

Переключение режимов отображения в Hacker Viewer.

Обратите внимание на положение Decode (декодирование). Вам это ни о чём не говорит? Да, да, да в Hiew имеется встроенный дизассемблер и даже ассемблер! Можно внести изменения в ассемблерный код, не выходя из редактора и сохранить изменения

Исполняемый файл останется рабочим — гениальная программа с поразительными возможностями для своего времени!

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

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

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

Types of Number Systems

There are mainly 3 types of number systems in our programming world. They are as follows:

  1. Decimal number system (Base -10)
  2. Binary number system (Base -2)
  3. Hexadecimal number system (Base-16)

Decimal Number Systems

The number system that we use in our day-to-day life is the decimal number system. Decimal number system has base 10 as it uses 10 digits from 0 to 9. It is also a positional value system. This means that the value of digits will depend on its position. Each position represents a specific power of the base (10).

Example –

Say we have three numbers – 564, 159 and 265. The value of 5 in all three numbers is different−

  • In 564, value of 5 is 5 hundreds or 500 or 5 × 100 or 5 × 102
  • In 159 , value of 5 is 5 tens or 50 or 5 × 10 or 5× 101
  • In 265, value 0f 5 is 5 units or 5 or 5 × 1 or 5 × 10

Later in this post we will see, how can we can convert other number systems to Decimal and vice versa.

Binary Number Systems

The number system having just the two digits – 0 and 1 – is called binary number system. This is the natural “language” for our computers. Because the easiest way to vary instructions through electric signals is two-state system – on and off. On is represented as 1 and off as 0.

Binary Number system is also positional value system, where each digit has a value expressed in powers of 2.

To represent a number in binary you need to follow the universal rule: break down the number to a sum of exact powers of 2.

Example –

Hexadecimal Number Systems

The hexadecimal number system uses 16 digits. It includes all decimal digits from 0 to 9 and adds the first 6 letters from the English alphabet. So all symbols are: 0 to and 9 and A to F where A(hex) = 10(dec), B = 11, C = 12, D = 13, E = 14 and F = 15. There is no rule if the letters A to F are uppercase or lowercase.

Понравилась статья? Поделиться с друзьями:
Твой Советник
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: