Системы счисления
Система счисления - это набор символов и правила их применения для представления чисел.
Системы счисления могут быть позиционными и непозиционными. В позиционных системах значение цифры зависит от позиции, на которой стоит цифра в записи числа, а в непозиционных - не зависит.
В качестве примера непозиционной можно привести римскую систему счисления, в которой были приняты семь базовых чисел. В следующей таблице символам римской системы сопоставлены числа в десятичной:
Символ | I | V | X | L | C | D | M |
Число | 1 | 5 | 10 | 50 | 100 | 500 | 1000 |
Остальные числа получаются в результате сложения и вычитания по следующему правилу: если меньшее базовое число предшествует большему (стоит левее в записи), то оно вычитается, если же за базовым числом стоит меньшее или оно последнее - то складывается с результатом, при этом подряд не должно стоять больше трех одинаковых символов. Например,
IV: -1 + 5 = 4,
MCDXCVIII: 1000 - 100 + 500 - 10 + 100 + 5 + 1 + 1 + 1 = 1498
Максимальным числом, которое можно представить в классической римской системе является 3999.
В нашей повседневной жизни мы пользуемся десятичной позиционной системой счисления. В ней десять цифр - от 0 до 9, а их значение зависит от позиции. Цифра, которая находится в самом младшем (правом) разряде записи числа, обозначает количество единиц в числе. Цифра в следующем, более старшем разряде (левее самого младшего), обозначает количество десятков, в следующем - количество сотен, и т.д..
Количество цифр, используемых в системе счисления, называется основанием системы. В таблице приведены примеры, распространенных в информатике систем счисления, их основания и наборы цифр (алфавит):
Система счисления | Основание | Используемые цифры |
Десятичная | 10 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 |
Двоичная | 2 | 0, 1 |
Восьмеричная | 8 | 0, 1, 2, 3, 4, 5, 6, 7 |
Шестнадцате- ричная |
16 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F |
Так как обычных цифр всего десять, то для обозначения остальных цифр в шестнадцатеричной системе используются буквы латинского алфавита.
Основной системой в информатике является двоичная, потому что вычисления реализовать в электронных устройствах оказывается достаточно просто именно в этой системе. Современная компьютерная техника основана на электронных логических элементах, имеющих два уровня сигнала - низкий и высокий, соответствующих нулю и единице.
Ниже приведена таблица первых шестнадцати чисел в двоичной, восьмеричной и шестнадцатеричной системах счисления:
Основание системы | |||
10 | 2 | 8 | 16 |
0 | 0000 | 00 | 0 |
1 | 0001 | 01 | 1 |
2 | 0010 | 02 | 2 |
3 | 0011 | 03 | 3 |
4 | 0100 | 04 | 4 |
5 | 0101 | 05 | 5 |
6 | 0110 | 06 | 6 |
7 | 0111 | 07 | 7 |
8 | 1000 | 10 | 8 |
9 | 1001 | 11 | 9 |
10 | 1010 | 12 | A |
11 | 1011 | 13 | B |
12 | 1100 | 14 | C |
13 | 1101 | 15 | D |
14 | 1110 | 16 | E |
15 | 1111 | 17 | F |
Можно заметить, что во всех системах при последовательной записи чисел, сначала используется один разряд, в котором меняется цифра (символ алфавита системы), после того, как цифры исчерпаны, для представления следующего числа уже необходимо две цифры и оно обозначается как 10. В общем случае имеет место быть равенство:
q = 10q,
где q - основание системы счисления, а 10q читается как один, ноль. Нижний индекс указывает в какой системе записано число. Для приведенных в таблице систем: 2=102, 8 = 108, 16 = 1016.
Также в таблице можно заметить, что трех-разрядному двоичному числу соответствует одноразрядное восьмеричное, а четырех-разрядному двоичному - одноразрядное шестнадцатеричное. Это значит, что зная эту таблицу, можно производить прямое преобразование между двоичным и восьмеричным, а также между двоичным и шестнадцатеричным числами.
Например, чтобы перевести 11010102 в шестнадцатеричного число, разделим условно число на группы по четыре разряда: 0110 1010, при этом отсчет ведем с младшего (правого) разряда, а группу, в которой разрядов меньше четырех, дополняем справа нулями. По таблице находим соответствие: 0110 - это 6, 1010 - A. Получилось - 6A16.
Переведем число 2738 в двоичный вид. 28 - 0102, 78 - 1112, 38 - 0112, записываем последовательно и получаем - 0101110112.
Перевод в десятичную систему счисления
Для n-разрядного целого числа в десятичной системе справедливо выражение:
Х10 = An-1 ⋅10n-1 + An-2 ⋅10n-2 + … + A1 ⋅101 + A0 ⋅100,
где
Х10 - число, записанное в десятичной системе, в нижнем индексе указано основание системы,
Аn-1 .. А0 - цифры в соответствующих разрядах числа.
Это выражение - разложение десятичного числа по степеням десяти - основания системы. Например, для числа 7583:
758310 = 7⋅103 + 5⋅102 + 8⋅101 + 3⋅100
Аналогичное выражение справедливо для любой позиционной системы счисления:
Xq = An-1⋅qn-1 + An-2⋅qn-2 + … + A1⋅q1 + A0⋅q0,
где
q - основание системы счисления,
Xq- число, записанное в системе счисления с основанием q,
Аn-1 .. А0 - цифры в соответствующих разрядах числа.
Например,
2C416 = 2⋅162 + 12⋅161 + 4⋅160 = 2⋅256 + 12⋅16 + 4⋅1 = 512 + 192 + 4 = 70810
Для числа с дробной частью:
Xq = An-1⋅qn-1 + An-2⋅qn-2 + … + A1⋅q1 + A0⋅q0 + A-1⋅q-1 + A-2⋅q-2…
Например,
10011,1012 = 1⋅24 + 0⋅23 + 0⋅22 + 1⋅21 + 1⋅20 + 1⋅2-1 + 0⋅2-2 + 1⋅2-3 =
= 16 + 0 + 0 + 2 + 1 + 0,5 + 0 + 0,125 = 19,62510
Перевод числа из десятичной системы в другие
Для перевода из десятичной системы в другую применяется метод последовательного деления числа на основание системы, в которую переводят, до тех пор, пока частное не окажется меньше основания другой системы. Результат записывается слева направо следующим образом: первым записывается последнее полученное частное, затем записывается каждый остаток последовательного деления в обратном порядке.
Например, переведем число 16910 в двоичную систему:
169 | 2 | |||||||||||||
-168 | 84 | 2 | ||||||||||||
1 | -84 | 42 | 2 | |||||||||||
0 | -42 | 21 | 2 | |||||||||||
0 | -20 | 10 | 2 | |||||||||||
1 | -10 | 5 | 2 | |||||||||||
0 | -4 | 2 | 2 | |||||||||||
1 | -2 | 1 | ||||||||||||
0 |
Результат записываем, как показано стрелками: 101010012. Заметим, что в результате первого деления, полученный остаток является самым младшим разрядом числа в другой системе счисления.
Чтобы перевести дробную часть числа, представленному в десятичной системе, надо применить другой метод - последовательное умножение дробной части на основание системы, в которую переводим. Допустим, нужно перевести 0,37510 в двоичную систему счисления.
0, | 375 | ⋅ 2 |
0 | 750 | ⋅ 2 |
1 | 500 | ⋅ 2 |
1 | 000 |
Вычисления метода удобно записывать в виде столбика, Проводится вертикальная черта, отделяющая дробную часть, Если в результате умножения дробной части получаем число, в котором количество разрядов совпадает с количеством разрядов дробной части, то в следующей строке слева от вертикальной черты пишем 0, если же больше, то старшие разряды полученного произведения, превышающие дробную часть по количеству разрядов. Справа от черты пишем младшие разряды полученного произведения в количестве равным количеству разрядов дробной части.
В нашем случае, 375 ⋅ 2 = 750, значит, во второй строке пишем слева от черты 0, а справа - 750. Снова умножаем на 2 полученную дробную часть - 750 ⋅ 2 = 1500. Число разрядов 4, поэтому в следующей строке 1 пишем слева от черты, а 500 - справа. Теперь умножаем 500 на 2, заметьте, что умножаем только часть полученного числа, стоящую справа от черты. 500 ⋅ 2 = 1000. В следующей строке пишем 1 слева от черты, 000 - справа. Дальнейшее умножение не имеет смысла, так как будем получать всегда 0. Результатом перевода будет левый столбик - 0,0112.
Не всегда последовательное умножение приводит к получению конечной дроби, тогда умножение проводят столько раз, сколько требуется по условиям задачи, т.е. сколько знаков требуется после запятой.
Переведем 3427,58 из десятичной системы в шестнадцатеричную с точностью дробной части 4 знака после запятой.
Переводим целую часть методом деления:
3427 | 16 | ||||
-32 | 214 | 16 | |||
22 | -16 | 13 | |||
-16 | 54 | ||||
67 | 48 | ||||
64 | 6 | ||||
3 |
Так как 13 в шестнадцатеричной системе - D, то результат - D6316.
Переведем дробную часть:
0, | 58 | ∗ 16 |
9 | 28 | ⋅ 16 |
4 | 48 | ⋅ 16 |
7 | 68 | ⋅ 16 |
10 | 88 |
Полученное число D63,947A16.
Арифметические операции с числами в двоичной системе счисления
Методы арифметических операций с двоичными числами точно такие, какие используются для операций с десятичными числами. Рассмотрим несколько примеров.
101101112 + 100012
+ | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 |
1 | 0 | 0 | 0 | 1 | ||||
1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 |
Записываем числа один под другим, при этом числа должны быть "выровнены" по правому краю. Складываем поразрядно, начиная с младших (правых) разрядов. При этом, если сумма разрядов получается двух-разрядной - старший переносим на следующий разряд общего результата.
110110012 - 111012
. | . | . | . | |||||
- | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 0 | 1 | ||||
1 | 0 | 1 | 1 | 1 | 1 | 0 | 0 |
10102 ∗ 1012
∗ | 1 | 0 | 1 | 0 | ||||
1 | 0 | 1 | ||||||
+ | 1 | 0 | 1 | 0 | ||||
1 | 0 | 1 | 0 | |||||
1 | 1 | 0 | 0 | 1 | 0 |
11000102 / 1012
110010 | 101 | ||||
-101 | 1010 | ||||
101 | |||||
-101 | |||||
00 | |||||
Свойства двоичных чисел
Число 2N в двоичной системе счисления записывается как единица и N нулей, например
24 = 100002.
Аналогично, для любой другой системы счисления, число qN в q-ой системе счисления записывается как единица и N нулей, например
33 = 10003.
Число 2N - 1 в двоичной системе счисления записывается как N единиц, например
24 - 1 = 1510 = 11112.
Для любой системы счисления, число qN - 1 в q-ой системе счисления записывается как N цифр (q-1), например
34 - 1 = = 22223.
Число 2N - 2K , при K < N в двоичной системе счисления записывается как (N - K) единиц и K нулей, например
25 - 22 = 111002.
Для системы счисления с основанием q, число qN - qK , при K < N записывается как (N - K) цифр (q-1) и K нулей, например
35 - 32 = 222003.
Имеют место быть выражения:
2N + 2N = 2 ∗ 2N = 2N+1,
2N = 2N+1 - 2N,
- 2N = - 2N+1 + 2N.
Задачи для самостоятельного решения
-
Сколько единиц в двоичной записи числа 113,5?
-
Сколько единиц в двоичной записи числа 21,25?
-
Сколько единиц в двоичной записи числа 32,625?
-
Сколько значащих нулей в двоичной записи числа 29,25?
-
Сколько значащих нулей в двоичной записи числа 18,125?
-
Укажите в порядке возрастания через запятую все основания систем, в которых запись десятичного числа 53 оканчивается на 3.
-
Укажите в порядке возрастания через запятую все основания систем, в которых запись десятичного числа 26 оканчивается на 2.
-
Укажите в порядке возрастания через запятую все основания систем, в которых запись десятичного числа 33 оканчивается на 1.
-
Укажите в порядке возрастания через запятую все основания систем, в которых запись десятичного числа 40 оканчивается на 4.
-
Укажите в порядке возрастания через запятую все основания систем, в которых запись десятичного числа 39 оканчивается на 7.
-
В системе счисления с некоторым основанием десятичное число 43 записывается как 111. Укажите это основание.
-
В системе счисления с некоторым основанием десятичное число 85 записывается как 151. Укажите это основание.
-
В системе счисления с некоторым основанием десятичное число 34 записывается как 202. Укажите это основание.
-
В системе счисления с некоторым основанием десятичное число 148 записывается как 125. Укажите это основание.
-
В системе счисления с некоторым основанием десятичное число 202 записывается как 244. Укажите это основание.
-
Укажите через запятую в порядке возрастания все числа, не превосходящие 30, запись которых в двоичной системе счисления оканчивается на 101. Числа указывайте в десятичной системе счисления.
-
Укажите через запятую в порядке возрастания все числа, не превосходящие 17, запись которых в двоичной системе счисления оканчивается на 11. Числа указывайте в десятичной системе счисления.
-
Укажите через запятую в порядке возрастания все числа, не превосходящие 35, запись которых в двоичной системе счисления оканчивается на 110. Числа указывайте в десятичной системе счисления.
-
Укажите через запятую в порядке возрастания все числа, не превосходящие 33, запись которых в двоичной системе счисления оканчивается на 100. Числа указывайте в десятичной системе счисления.
-
Укажите через запятую в порядке возрастания все числа, не превосходящие 15, запись которых в двоичной системе счисления оканчивается на 10. Числа указывайте в десятичной системе счисления.
-
Для кодирования букв А, Б, В, Г решили использовать двух-разрядные двоичные числа (от 002 до 112 соответственно). Какое число получится, если закодировать таким образом последовательность ГБАВ и перевести результат в шестнадцатеричную систему счисления?
-
Для кодирования букв А, Б, В, Г решили использовать двух-разрядные двоичные числа (от 002 до 112 соответственно). Какое число получится, если закодировать таким образом последовательность ВАБГ и перевести результат в восьмеричную систему счисления?
-
Для кодирования букв А, Б, В, Г решили использовать двух-разрядные двоичные числа (от 002 до 112 соответственно). Какое число получится, если закодировать таким образом последовательность ВГБА и перевести результат в восьмеричную систему счисления?
-
Для кодирования букв А, Б, В, Г решили использовать двух-разрядные двоичные числа (от 002 до 112 соответственно). Какое число получится, если закодировать таким образом последовательность ГАВБ и перевести результат в шестнадцатеричную систему счисления?
-
Для кодирования букв А, Б, В, Г решили использовать двух-разрядные двоичные числа (от 002 до 112 соответственно). Какое число получится, если закодировать таким образом последовательность ГВБА и перевести результат в шестнадцатеричную систему счисления?
-
Переведите десятичное число 13,5 в двоичную систему счисления.
-
Переведите десятичное число 21,375 в двоичную систему счисления.
-
Переведите десятичное число 41,25 в двоичную систему счисления.
-
Переведите десятичное число 38,75 в двоичную систему счисления.
-
Переведите десятичное число 27,625 в двоичную систему счисления.
-
Переведите десятичное число 416 в восьмеричную систему счисления.
-
Переведите десятичное число 510 в восьмеричную систему счисления.
-
Переведите десятичное число 523 в шестнадцатеричную систему счисления.
-
Переведите десятичное число 680 в шестнадцатеричную систему счисления.
-
Переведите десятичное число 495 в шестнадцатеричную систему счисления.
-
Вычислите значение суммы 1012 + 118 + 1016. Результат запишите в виде десятичного числа.
-
Вычислите значение суммы 2214 + 558 + 5510. Результат запишите в виде шестнадцатеричного числа.
-
Вычислите значение разности 1116 - 118. Результат запишите в виде десятичного числа.
-
Вычислите значение разности 57310 - 5738. Результат запишите в виде шестнадцатеричного числа.
-
Вычислите значение разности A716 - 110102. Результат запишите в виде шестнадцатеричного числа.
-
Сколько единиц в двоичной записи восьмеричного числа 73518?
-
Сколько единиц в двоичной записи восьмеричного числа 12348?
-
Сколько значащих нулей в двоичной записи восьмеричного числа 75128?
-
Укажите наибольшее число, двоичная запись которого содержит ровно три значащих нуля и две единицы, причём единицы не стоят рядом. Ответ запишите в десятичной системе счисления.
-
Укажите наибольшее четырёхзначное шестнадцатеричное число, двоичная запись которого содержит ровно 9 нулей. В ответе запишите только само шестнадцатеричное число, основание системы счисления указывать не нужно.
-
Укажите наименьшее четырёхзначное шестнадцатеричное число, двоичная запись которого содержит ровно 6 нулей. В ответе запишите только само шестнадцатеричное число, основание системы счисления указывать не нужно.
-
Сколько существует натуральных чисел x, для которых выполняется неравенство 100110112 < x < 100111112? В ответе укажите только количество чисел, сами числа писать не нужно
-
В системе счисления с основанием N запись числа 87 оканчивается на 2 и содержит не более двух цифр. Чему равно число N? Если у задачи есть несколько решений, выберите наименьшее.
-
В системе счисления с основанием N запись числа 87 оканчивается на 2 и содержит не менее трёх цифр. Чему равно число N?
-
Сколько единиц в двоичной записи числа 42014 + 22015 – 8
-
Сколько значащих нулей в двоичной записи числа 416 + 236 — 16?
-
Сколько значащих нулей в двоичной записи числа 4512 + 8512 – 2128 – 250?
-
Сколько единиц в двоичной записи числа 42015 + 8405 – 2150 – 122?
-
Решите уравнение 121x + 1 = 1017. Ответ запишите в троичной системе счисления. Основание системы счисления указывать не нужно.
-
Значение арифметического выражения: 98 + 35 — 2 записали в системе счисления с основанием 3. Сколько цифр «2» содержится в этой записи?
-
Значение арифметического выражения: 98 + 35 – 9 — записали в системе счисления с основанием 3. Сколько цифр «2» содержится в этой записи?