Основные понятия систем счисления
Система счисления - это совокупность правил и приемов записи чисел с помощью набора цифровых знаков. Количество цифр, необходимых для записи числа в системе, называют основанием системы счисления. Основание системы записывается в справа числа в нижнем индексе: ; ; и т. д.
Различают два типа систем счисления:
позиционные, когда значение каждой цифры числа определяется ее позицией в записи числа;
непозиционные, когда значение цифры в числе не зависит от ее места в записи числа.
Примером непозиционной системы счисления является римская: числа IX, IV, XV и т.д. Примером позиционной системы счисления является десятичная система, используемая повседневно.
Любое целое число в позиционной системе можно записать в форме многочлена:
где S - основание системы счисления;
- цифры числа, записанного в данной системе счисления;
n - количество разрядов числа.
Пример. Число запишется в форме многочлена следующим образом:
Правила перевода чисел из одной системы счисления в другую
Перевод чисел из одной системы счисления в другую составляет важную часть машинной арифметики. Рассмотрим основные правила перевода.
1. Для перевода двоичного числа в десятичное необходимо его записать в виде многочлена, состоящего из произведений цифр числа и соответствующей степени числа 2, и вычислить по правилам десятичной арифметики:
При переводе удобно пользоваться таблицей степеней двойки:
Таблица 4. Степени числа 2
n (степень) |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
|
1 |
2 |
4 |
8 |
16 |
32 |
64 |
128 |
256 |
512 |
1024 |
Пример . Число перевести в десятичную систему счисления.
2. Для перевода восьмеричного числа в десятичное необходимо его записать в виде многочлена, состоящего из произведений цифр числа и соответствующей степени числа 8, и вычислить по правилам десятичной арифметики:
При переводе удобно пользоваться таблицей степеней восьмерки:
Таблица 5. Степени числа 8
n (степень) |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
1 |
8 |
64 |
512 |
4096 |
32768 |
262144 |
Пример . Число перевести в десятичную систему счисления.
3. Для перевода шестнадцатеричного числа в десятичное необходимо его записать в виде многочлена, состоящего из произведений цифр числа и соответствующей степени числа 16, и вычислить по правилам десятичной арифметики:
При переводе удобно пользоваться таблицей степеней числа 16:
Таблица 6. Степени числа 16
n (степень) |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
1 |
16 |
256 |
4096 |
65536 |
1048576 |
16777216 |
Пример . Число перевести в десятичную систему счисления.
Системы счисления. Позиционная и непозиционная системы счисления
Система счисления – это способ записи чисел. Обычно, числа записываются с помощью специальных знаков – цифр (хотя и не всегда). Если вы никогда не изучали данный вопрос, то, по крайней мере, вам должны быть известны две системы счисления – это арабская и римская. В первой используются цифры 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 и это позиционная система счисления. А во второй – I, V, X, L, C, D, M и это непозиционная система счисления.
В позиционных системах счисления количество, обозначаемое цифрой в числе, зависит от ее позиции, а в непозиционных – нет. Например:
11 – здесь первая единица обозначает десять, а вторая – 1.
II – здесь обе единицы обозначают единицу.
345, 259, 521 – здесь цифра 5 в первом случае обозначает 5, во втором – 50, а в третьем – 500.
XXV, XVI, VII – здесь, где бы ни стояла цифра V, она везде обозначает пять единиц. Другими словами, величина, обозначаемая знаком V, не зависит от его позиции.
Сложение, умножение и другие математические операции в позиционных системах счисления выполнить легче, чем в непозиционных, т.к. математические операции осуществляются по несложным алгоритмам (например, умножение в столбик, сравнение двух чисел).
В мире наиболее распространены позиционные системы счисления. Помимо знакомой всем с детства десятичной (где используется десять цифр от 0 до 9), в технике широкое распространение нашли такие системы счисление как двоичная (используются цифры 0 и 1), восьмеричная и шестнадцатеричная.
Следует отметить, важную роль нуля. «Открытие» этой цифры в истории человечества сыграло большую роль в формировании позиционных систем счисления.
Основание системы счисления – это количество знаков, которое используется для записи цифр.
Разряд - это позиция цифры в числе. Разрядность числа - количество цифр, из которых состоит число (например, 264 - трехразрядное число, 00010101 - восьмиразрядное число). Разряды нумеруются справа на лево (например, в числе 598 восьмерка занимает первый разряд, а пятерка - третий).
Итак, в позиционной системе счисления числа записываются таким образом, что каждый следующий (движение справа на лево) разряд больше другого на степень основания системы счисления. (придумать схему)
Одно и тоже число (значение) можно представить в различных системах счисления. Представление числа при этом различно, а значение остается неизменным.
Двоичная система счисления
В двоичной системе счисления используются всего две цифры 0 и 1. Другими словами, двойка является основанием двоичной системы счисления. (Аналогично у десятичной системы основание 10.)
Чтобы научиться понимать числа в двоичной системе счисления, сначала рассмотрим, как формируются числа в привычной для нас десятичной системе счисления.
В десятичной системе счисления мы располагаем десятью знаками-цифрами (от 0 до 9). Когда счет достигает 9, то вводится новый разряд (десятки), а единицы обнуляются и счет начинается снова. После 19 разряд десятков увеличивается на 1, а единицы снова обнуляются. И так далее. Когда десятки доходят до 9, то потом появляется третий разряд – сотни.
Двоичная система счисления аналогична десятичной за исключением того, что в формировании числа участвуют всего лишь две знака-цифры: 0 и 1. Как только разряд достигает своего предела (т.е. единицы), появляется новый разряд, а старый обнуляется.
Попробуем считать в двоичной системе:
0 – это ноль
1 – это один (и это предел разряда)
10 – это два
11 – это три (и это снова предел)
100 – это четыре
101 – пять
110 – шесть
111 – семь и т.д.
Перевод чисел из двоичной системы счисления в десятичную
Не трудно заметить, что в двоичной системе счисления длины чисел с увеличением значения растут быстрыми темпами. Как определить, что значит вот это: 10001001? Непривычный к такой форме записи чисел человеческий мозг обычно не может понять сколько это. Неплохо бы уметь переводить двоичные числа в десятичные.
В десятичной системе счисления любое число можно представить в форме суммы единиц, десяток, сотен и т.д. Например:
1476 = 1000 + 400 + 70 + 6
Можно пойти еще дальше и разложить так:
1476 = 1 * 103 + 4 * 102 + 7 * 101 + 6 * 100
Посмотрите на эту запись внимательно. Здесь цифры 1, 4, 7 и 6 - это набор цифр из которых состоит число 1476. Все эти цифры поочередно умножаются на десять возведенную в ту или иную степень. Десять – это основание десятичной системы счисления. Степень, в которую возводится десятка – это разряд цифры за минусом единицы.
Аналогично можно разложить и любое двоичное число. Только основание здесь будет 2:
10001001 = 1*27 + 0*26 + 0*25 + 0*24 + 1*23 + 0*22 + 0*21 + 1*20
Если посчитать сумму составляющих, то в итоге мы получим десятичное число, соответствующее 10001001:
1*27 + 0*26 + 0*25 + 0*24 + 1*23 + 0*22 + 0*21 + 1*20 = 128 + 0 + 0 + 0 + 8 + 0 + 0 + 1 = 137
Т.е. число 10001001 по основанию 2 равно числу 137 по основанию 10. Записать это можно так:
100010012 = 13710
Перевод десятичного числа в двоичное
Может потребоваться перевести десятичное число в двоичное. Один из способов – это деление на два и формирование двоичного числа из остатков. Например, нужно получить из числа 77 его двоичную запись:
77 / 2 = 38 (1 остаток)
38 / 2 = 19 (0 остаток)
19 / 2 = 9 (1 остаток)
9 / 2 = 4 (1 остаток)
4 / 2 = 2 (0 остаток)
2 / 2 = 1 (0 остаток)
1 / 2 = 0 (1 остаток)
Собираем остатки вместе, начиная с конца: 1001101. Это и есть число 77 в двоичном представлении. Проверим:
1001101 = 1*26 + 0*25 + 0*24 + 1*23 + 1*22 + 0*21 + 1*20 = 64 + 0 + 0 + 8 + 4 + 0 + 1 = 77
Восьмеричная система счисления
Итак, современное «железо понимает» лишь двоичную систему счисления. Однако человеку трудно воспринимать длинные записи нулей и единиц с одной стороны, а с другой – переводит числа из двоичной в десятичную систему и обратно, достаточно долго и трудоемко. В результате, часто программисты используют другие системы счисления: восьмеричную и шестнадцатеричную. И 8 и 16 являются степенями двойки, и преобразовывать двоичное число в них (так же как и выполнять обратную операцию) очень легко.
В восьмеричной системе счисления используется восемь знаков-цифр (от 0 до 7). Каждой цифре соответствуют набор из трех цифр в двоичной системе счисления:
000 – 0
001 – 1
010 – 2
011 – 3
100 – 4
101 – 5
110 – 6
111 – 7
Для преобразования двоичного числа в восьмеричное достаточно разбить его на тройки и заменить их соответствующими им цифрами из восьмеричной системы счисления. Разбивать на тройки нужно начинать с конца, а недостающие цифры в начале заменить нулями. Например:
1011101 = 1 011 101 = 001 011 101 = 1 3 5 = 135
Т.е число 1011101 в двоичной системе счисления равно числу 135 в восьмеричной системе счисления. Или 10111012 = 1358.
Обратный перевод. Допустим, требуется перевести число 1008 (не заблуждайтесь! 100 в восьмеричной системе – это не 100 в десятичной) в двоичную систему счисления.
1008 = 1 0 0 = 001 000 000 = 001000000 = 10000002
Перевод восьмеричного числа в десятичное можно осуществить по уже знакомой схеме:
6728 = 6 * 82 + 7 * 81 + 2 * 80 = 6 * 64 + 56 + 2 = 384 + 56 + 2 = 44210
1008 = 1 * 82 + 0 * 81 + 0 * 80 = 6410
Шестнадцатеричная система счисления
Шестнадцатеричная система счисления, так же как и восьмеричная, широко используется в компьютерной науке из-за легкости перевода в нее двоичных чисел. При шестнадцатеричной записи числа получаются более компактными.
В шестнадцатеричной системе счисления используются цифры от 0 до 9 и шесть первых латинских букв – A (10), B (11), C (12), D (13), E (14), F (15).
При переводе двоичного числа в шестнадцатеричное, первое разбивается на группы по четыре разряда, начиная с конца. В случае, если количество разрядов не делится нацело, то первая четверка дописывается нулями впереди. Каждой четверке соответствует цифра шестнадцатеричной системе счисления:
Например:
10001100101 = 0100 1100 0101 = 4 C 5 = 4C5
Если потребуется, то число 4C5 можно перевести в десятичную систему счисления следующим образом (C следует заменить на соответствующее данному символу число в десятичной системе счисления – это 12):
4C5 = 4 * 162 + 12 * 161 + 5 * 160 = 4 * 256 + 192 + 5 = 1221
Максимальное двухразрядное число, которое можно получить с помощью шестнадцатеричной записи - это FF.
FF = 15 * 161 + 15 * 160 = 240 + 15 = 255
255 – это максимальное значение одного байта, равного 8 битам: 1111 1111 = FF. Поэтому с помощью шестнадцатеричной системы счисления очень удобно кратко (с помощью двух цифр-знаков) записывать значения байтов. Внимание! Состояний у 8-ми битного байта может быть 256, однако максимальное значение – 255. Не забывайте про 0 – это как раз 256-е состояние.
Из десятичной системы счисления
При переводе целых чисел из десятичной системы счисления последовательно выполняют деление этого числа и получаемых целых частных на основание выбранной системы счисления. Деление выполняют до тех пор, пока частное не будет равно нулю.
Число получают путем «сбора» остатков, начиная с конца.
в двоичную
34 / 2 = 17 (0)
17 / 2 = 8 (1)
8 / 2 = 4 (0)
4 / 2 = 2 (0)
2 / 2 = 1 (0)
1 / 2 = 0 (1)
3410 = 1000102
в восьмеричную
472 / 8 = 59 (0)
59 / 8 = 7 (3)
7 / 8 = 0 (7)
47210 = 7308
в шестнадцатеричную
924 / 16 = 57 (12)
57 / 16 = 3 (9)
3 / 16 = 0 (3)
92410 = 39C16
Арифметические операции в двоичной системе счисления
В двоичной системе счисления арифметические операции выполняются по тем же правилам, что и в десятичной системе счисления, т.к. они обе являются позиционными (наряду с восьмеричной, шестнадцатеричной и др.).
Сложение
Сложение одноразрядных двоичных чисел выполняется по следующим правилам:
0 + 0 = 0
1 + 0 = 1
0 + 1 = 1
1 + 1 = 10
В последнем случае, при сложении двух единиц, происходит переполнение младшего разряда, и единица переносится в старший разряд. Переполнение возникает в случае, если сумма равна основанию системы счисления (в данном случае это число 2) или больше его (для двоичной системы счисления это не актуально).
Сложим для примера два любых двоичных числа:
1101
+ 101
------
10010
Вычитание
Вычитание одноразрядных двоичных чисел выполняется по следующим правилам:
0 - 0 = 0
1 - 0 = 1
0 - 1 = (заем из
старшего разряда)
1
1 - 1 = 0
Пример:
1110
- 101
----
1001
Умножение
Умножение одноразрядных двоичных чисел выполняется по следующим правилам:
0 * 0 = 0
1 * 0 = 0
0 * 1 = 0
1 * 1 = 1
Пример:
1110
* 10
------
+ 0000
1110
------
11100