Методы перевода десятичного числа в двоичное
В одном из наших материалов мы рассмотрели определение двоичного числа. Оно имеет самый короткий алфавит. Только две цифры: 0 и 1. Примеры алфавитов позиционных систем счисления приведены в таблице.
Позиционные системы счисления
Название системы
Основание
Алфавит
Для перевода небольшого числа из десятичного в двоичное, и обратно, лучше пользоваться следующей таблицей.
Таблица перевода десятичных чисел от 0 до 20 в двоичную систему счисления.
десятичное
число
двоичное число
десятичное
число
двоичное число
Однако таблица получится огромной, если записать туда все числа. Искать среди них нужное число будет уже сложнее. Гораздо проще запомнить несколько алгоритмов перевода чисел из одной позиционной системы счисления в другую.
Как сделать перевод из одной системы счисления в другую? В информатике существует несколько простых способов перевода десятичных чисел в двоичные числа. Рассмотрим два из них.
Способ №1.
Допустим, требуется перевести число 637 десятичной системы в двоичную систему.
Делается это следующим образом: отыскивается максимальная степень двойки, чтобы два в этой степени было меньше или равно исходному числу.
В нашем случае это 9, т.к. 2 9 =512, а 2 10 =1024, что больше нашего начального числа. Таким образом, мы получили число разрядов результата. Оно равно 9+1=10. Значит, результат будет иметь вид 1ххххххххх, где вместо х может стоять 1 или 0.
Найдем вторую цифру результата. Возведем двойку в степень 9 и вычтем из исходного числа: 637-2 9 =125. Затем сравниваем с числом 2 8 =256. Так как 125 меньше 256, то девятый разряд будет 0, т.е. результат уже примет вид 10хххххххх.
2 7 =128 > 125, значит и восьмой разряд будет нулём.
2 6 =64, то седьмой разряд равен 1. 125-64=61 Таким образом, мы получили четыре старших разряда и число примет вид 10011ххххх.
2 5 =32 и видим, что 32 4 =16 1001111ххх. Остаток 29-16=13.
2 3 =8 10011111хх. 13-8=5
2 2 =4 10011111хх, остаток 5-4=1.
2 1 =2 > 1 => 100111110х, остаток 2-1=1.
2 0 =1 => 1001111101.
Это и будет конечный результат.
Способ №2.
Правило перевода целых десятичных чисел в двоичную систему счисления, гласит:
- Разделим an−1an−2. a1a0=an−1⋅2 n−1 +an−2⋅2 n−2 +. +a0⋅2 0 на 2.
- Частное будет равно an−1⋅2n−2+. +a1, а остаток будет равен
- Полученное частное опять разделим на 2, остаток от деления будет равен a1.
- Если продолжить этот процесс деления, то на n-м шаге получим набор цифр: a0,a1,a2. an−1, которые входят в двоичное представление исходного числа и совпадают с остатками при его последовательном делении на 2.
- Таким образом, для перевода целого десятичного числа в двоичную систему счисления нужно последовательно выполнять деление данного числа и получаемых целых частных на 2 до тех пор, пока не получим частное, которое будет равно нулю.
Исходное число в двоичной системе счисления составляется последовательной записью полученных остатков. Записывать его начинаем с последнего найденного.
Переведём десятичное число 11 в двоичную систему счисления. Рассмотренную выше последовательность действий (алгоритм перевода) можно изобразить так:
Получили 1110=10112.
Пример:
Если десятичное число достаточно большое, то более удобен следующий способ записи рассмотренного выше алгоритма:
Алгоритм перевода чисел из десятичной системы счисления в двоичную.
Для перевода чисел из десятичной системы счисления в двоичную используют так называемый «алгоритм замещения», состоящий из следующей последовательности действий:
1. Делим десятичное число А на 2. Частное Q запоминаем для следующего шага, а остаток a записываем как младший бит двоичного числа.
2. Если частное q не равно 0, принимаем его за новое делимое и повторяем процедуру, описанную в шаге 1. Каждый новый остаток (0 или 1) записывается в разряды двоичного числа в направлении от младшего бита к старшему.
3. Алгоритм продолжается до тех пор, пока в результате выполнения шагов 1 и 2 не получится частное Q = 0 и остаток a = 1.
Например, требуется перевести десятичное число 247 в двоичное. В соответствии с приведенным алгоритмом получим:
24710 : 2 = 12310 |
24710 — 24610 = 1, остаток 1 записываем в МБ двоичного числа. |
12310 : 2 = 6110 |
12310 — 12210 = 1, остаток 1 записываем в следующий после МБ разряд двоичного числа. |
6110 : 2 = 3010 |
6110 — 6010 = 1, остаток 1 записываем в старший разряд двоичного числа. |
3010 : 2 = 1510 |
3010 — 3010 = 0, остаток 0 записываем в старший разряд двоичного числа. |
1510 : 2 = 710 |
1510 — 1410 = 1, остаток 1 записываем в старший разряд двоичного числа. |
710 : 2 = 310 |
710 — 610 = 1, остаток 1 записываем в старший разряд двоичного числа. |
310 : 2 = 110 |
310 — 210 = 1, остаток 1 записываем в старший разряд двоичного числа. |
110 : 2 = 010, остаток 1 записываем в старший разряд двоичного числа. |
Таким образом, искомое двоичное число равно 111101112.
Перевод чисел из двоичной системы в десятичную.
Задача перевода чисел из двоичной системы счисления в десятичную чаще всего возникает уже при обратном преобразовании вычисленных либо обработанных компьютером значений в более понятные пользователю десятичные цифры. Алгоритм перевода двоичных чисел в десятичные достаточно прост (его иногда называют алгоритмом замещения):
Для перевода двоичного числа в десятичное необходимо это число представить в виде суммы произведений степеней основания двоичной системы счисления на соответствующие цифры в разрядах двоичного числа.
Например, требуется перевести двоичное число 10110110 в десятичное. В этом числе 8 цифр и 8 разрядов (разряды считаются, начиная с нулевого, которому соответствует младший бит). В соответствии с уже известным нам правилом представим его в виде суммы степеней с основанием 2:
101101102=(1·2 7 )+(0·2 6 )+(1·2 5 )+(1·2 4 )+(0·2 3 )+(1·2 2 )+(1·2 1 )+(0·2 0 )= 128+32+16+4+2 = 18210
Из этого примера видно, в частности, что десятичная система счисления более компактно отображает числа — 3 цифры (т.е. бита) вместо 8 цифр в двоичной системе счисления.
Теория графов. Основные понятия теории графов.
Определение. Если на плоскости задать конечное множество V точек и конечный набор линий Х, соединяющих некоторые пары из точек V, то полученная совокупность точек и линий будет называться графом.
При этом элементы множества V называются вершинами графа, а элементы множества Х – ребрами.
В множестве V могут встречаться одинаковые элементы, ребра, соединяющие одинаковые элементы называются петлями. Одинаковые пары в множестве Х называются кратными (или параллельными) ребрами. Количество одинаковых пар (v, w) в Х называется кратностьюребра (v, w).
Множество V и набор Х определяют граф с кратными ребрами – псевдограф. G = (V, X)
Псевдограф без петель называется мультиграфом.
Если в наборе Х ни одна пара не встречается более одного раза, то мультиграф называется графом.
Если пары в наборе Х являются упорядочными, то граф называется ориентированным или орграфом.
Графу соответствует геометрическая конфигурация. Вершины обозначаются точками (кружочками), а ребра – линиями, соединяющими соответствующие вершины.
Определение. Если х = <v, w> – ребро графа, то вершины v, w называются концами ребра х. Если х = (v, w) – дуга орграфа, то вершина v – начало, а вершина w – конец дуги х.
Определение. Вершины v, w графа G = (V, X) называются смежными, если <v,w>ÎX. Два ребра называются смежными, если они имеют общую вершину.
Определение. Степенью вершины графа называется число ребер, которым эта вершина принадлежит. Вершина называется изолированной, если ее степень равна единице и висячей, если ее степень равна нулю.
Определение.Графы G1(V1, X1) и G2(V2, X2) называются изоморфмными, если существует взаимно однозначное отображение j: V1 ® V2, сохраняющее смежность.
Определение. Маршрутом (путем) для графа G(V, X) называется последовательность v1x1v2x2v3…xkvk+1. Маршрут называется замкнутым, если его начальная и конечная точки совпадают. Число ребер (дуг) маршрута (пути) графа называется длиноймаршрута (пути).
Определение. Незамкнутый маршрут (путь) называется цепью. Цепь, в которой все вершины попарно различны, называется простой цепью.
Определение. Замкнутый маршрут (путь) называется циклом (контуром). Цикл, в котором все вершины попарно различны, называется простым циклом.
Определение. Вершина w графа D (или орграфа) называется достижимой из вершины v, если либо w=v, либо существует путь из v в w(маршрут, соединяющий v и w).
Определение. Граф (орграф) называется связным, если для любых двух его вершин существует маршрут (путь), который их связывает. Орграф называется односторонне связным, если для любых двух его вершин по крайней мере одна достижима из другой.
Определение. Псевдографом D(V,X), ассоциированным с ориентированным псевдографом, называется псевдограф G(V, X0) в котором Х0 получается из Х заменой всех упорядоченных пар (v, w) на неупорядоченные пары (v, w).
Определение.Орграф называется слабо связным, если связным является ассоциированный с ним псевдограф.
Определение. Цепь (цикл) в псевдографе G называется эйлеровым, если она проходит по одному разу через каждое ребро псевдографа G.
Теорема 26.1. Для того, чтобы связный псевдограф G обладал эйлеровым циклом, необходимо и достаточно, чтобы степени его вершин были четными.
Теорема 26.2. Для того, чтобы связный псевдограф G обладал эйлеровой цепью, необходимо и достаточно, чтобы он имел ровно две вершины нечетной степени.
Определение. Цикл (цепь) в псевдографе G называется гамильтоновым, если он проходит через каждую вершину псевдографа G ровно один раз.
Пример 26.1.
|
— в графе есть и эйлеровый и гамильтонов циклы
|
|
— в графе есть эйлеров цикл, но нет гамильтонова
— в графе есть гамильтонов, но нет эйлерова цикла
— в графе нет ни эйлерова, ни гамильтонова цикла
Граф G называется полным, если каждая его вершина смежна со всеми остальными вершинами. В полном графе всегда существуют гамильтоновы циклы.
Также необходимым условием существования гамильтонова цикла является связность графа.
Алгоритм перевода чисел из одной системы счисления в другую
1. Из десятичной системы счисления:
o разделить число на основание переводимой системы счисления;
o найти остаток от деления целой части числа;
o записать все остатки от деления в обратном порядке;
2. Из двоичной системы счисления
o Для перевода в десятичную систему счисления необходимо найти сумму произведений основания 2 на соответствующую степень разряда;
o Для перевода числа в восьмеричную необходимо разбить число на триады.
Например, 1000110 = 1 000 110 = 1068
o Для перевода числа из двоичной системы счисления в шестнадцатеричную необходимо разбить число на группы по 4 разряда.
Например, 1000110 = 100 0110 = 4616
Таблицы для перевода:
Двоичная СС | Шестнадцатеричная СС |
A | |
B | |
C | |
D | |
E | |
F |
Двоичная СС | Восьмеричная СС |
Рассмотрим основные правила перевода.
1. Для перевода двоичного числа в десятичное необходимо его записать в виде многочлена, состоящего из произведений цифр числа и соответствующей степени числа 2, и вычислить по правилам десятичной арифметики:
При переводе удобно пользоваться таблицей степеней двойки:
Таблица 4. Степени числа 2
n (степень) |
|
Пример .Число перевести в десятичную систему счисления.
2. Для перевода восьмеричного числа в десятичное необходимо его записать в виде многочлена, состоящего из произведений цифр числа и соответствующей степени числа 8, и вычислить по правилам десятичной арифметики:
При переводе удобно пользоваться таблицей степеней восьмерки:
Таблица 5. Степени числа 8
n (степень) |
|
Пример .Число перевести в десятичную систему счисления.
3. Для перевода шестнадцатеричного числа в десятичное необходимо его записать в виде многочлена, состоящего из произведений цифр числа и соответствующей степени числа 16, и вычислить по правилам десятичной арифметики:
При переводе удобно пользоваться таблицей степеней числа 16:
Таблица 6. Степени числа 16
n (степень) |
|
Пример .Число перевести в десятичную систему счисления.
Для перевода десятичного числа в двоичную систему его необходимо последовательно делить на 2 до тех пор, пока не останется остаток, меньший или равный 1. Число в двоичной системе записывается как последовательность последнего результата деления и остатков от деления в обратном порядке.
Пример.Число перевести в двоичную систему счисления.
Для перевода десятичного числа в восьмеричную систему его необходимо последовательно делить на 8 до тех пор, пока не останется остаток, меньший или равный 7. Число в восьмеричной системе записывается как последовательность цифр последнего результата деления и остатков от деления в обратном порядке.
Пример.Число перевести в восьмеричную систему счисления.
Для перевода десятичного числа в шестнадцатеричную систему его необходимо последовательно делить на 16 до тех пор, пока не останется остаток, меньший или равный 15. Число в шестнадцатеричной системе записывается как последовательность цифр последнего результата деления и остатков от деления в обратном порядке.
Пример.Число перевести в шестнадцатеричную систему счисления.
Чтобы перевести число из двоичной системы в восьмеричную, его нужно разбить на триады (тройки цифр), начиная с младшего разряда, в случае необходимости дополнив старшую триаду нулями, и каждую триаду заменить соответствующей восьмеричной цифрой (табл. 3).
Пример.Число перевести в восьмеричную систему счисления.
Чтобы перевести число из двоичной системы в шестнадцатеричную, его нужно разбить на тетрады (четверки цифр), начиная с младшего разряда, в случае необходимости дополнив старшую тетраду нулями, и каждую тетраду заменить соответствующей восьмеричной цифрой (табл. 3).
Пример.Число перевести в шестнадцатеричную систему счисления.