Перевод чисел между системами счисления, основания которых являются степенями числа 2 (q = 2 n), может производиться по более простым алгоритмам. Такие алгоритмы могут применяться для перевода чисел между двоичной (q = 2 1), восьмеричной (q = 2 3) и шестнадцатеричной (q = 2 4) системами счисления.
Перевод чисел из двоичной системы счисления в восьмеричную. Для записи двоичных чисел используются две цифры, то есть в каждом разряде числа возможны 2 варианта записи. Решаем показательное уравнение:
2 = 2 i . Так как 2 = 2 1 , то i = 1 бит.
Каждый разряд двоичного числа содержит 1 бит информации.
Для записи восьмеричных чисел используются восемь цифр, то есть в каждом разряде числа возможны 8 вариантов записи. Решаем показательное уравнение:
8 = 2 i . Так как 8 = 2 3 , то i = 3 бита.
Каждый разряд восьмеричного числа содержит 3 бита информации.
Таким образом, для перевода целого двоичного числа в восьмеричное его нужно разбить на группы по три цифры, справа налево, а затем преобразовать каждую группу в восьмеричную цифру. Если в последней, левой, группе окажется меньше трех цифр, то необходимо ее дополнить слева нулями.
Переведем таким способом двоичное число 101001 2 в восьмеричное:
101 001 2 => 1 × 2 2 + 0 × 2 1 + 1 × 2 0 0 × 2 2 + 0 × 2 1 + 1 × 2 0 => 51 8 .
Для упрощения перевода можно заранее подготовить таблицу преобразования двоичных триад (групп по 3 цифры) в восьмеричные цифры:
Двоичные триады | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
Восьмеричные цифры | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Для перевода дробного двоичного числа (правильной дроби) в восьмеричное необходимо разбить его на триады слева направо и, если в последней, правой, группе окажется меньше трех цифр, дополнить ее справа нулями. Далее необходимо триады заменить на восьмеричные числа.
Например, преобразуем дробное двоичное число А 2 = 0,110101 2 в восьмеричную систему счисления:
Двоичные триады | 110 | 101 |
Восьмеричные цифры | 6 | 5 |
Получаем: А 8 = 0,65 8 .
Перевод чисел из двоичной системы счисления в шестнадцатеричную. Для записи шестнадцатеричных чисел используются шестнадцать цифр, то есть в каждом разряде числа возможны 16 вариантов записи. Решаем показательное уравнение:
16 = 2 i . Так как 16 = 2 4 , то i = 4 бита.
Каждый разряд шестнадцатеричного числа содержит 4 бита информации.
Таким образом, для перевода целого двоичного числа в шестнадцатеричное его нужно разбить на группы по четыре цифры (тетрады), начиная справа, и, если в последней левой группе окажется меньше четырех цифр, дополнить ее слева нулями. Для перевода дробного двоичного числа (правильной дроби) в шестнадцатеричное необходимо разбить его на тетрады слева направо и, если в последней правой группе окажется меньше четырех цифр, то необходимо дополнить ее справа нулями.
Затем надо преобразовать каждую группу в шестнадцате-ричную цифру, воспользовавшись для этого предварительно составленной таблицей соответствия двоичных тетрад и шестнадцатеричных цифр.
Переведем целое двоичное число А 2 = 101001 2 в шестнадцатеричное:
Получаем: А 16 = 0,D4 16 .
Для того чтобы преобразовать любое двоичное число в восьмеричную или шестнадцатеричную системы счисления, необходимо произвести преобразования по рассмотренным выше алгоритмам отдельно для его целой и дробной частей.
Перевод чисел из восьмеричной и шестнадцатеричной систем счисления в двоичную. Для перевода чисел из восьмеричной и шестнадцатеричной систем счисления в двоичную необходимо цифры числа преобразовать в группы двоичных цифр. Для перевода из восьмеричной системы в двоичную каждую цифру числа надо преобразовать в группу из трех двоичных цифр (триаду), а при преобразовании шестнадцатеричного числа - в группу из четырех цифр (тетраду).
Например, преобразуем дробное восьмеричное число А 8 = 0,47 8 в двоичную систему счисления:
В результате имеем: А 2 = 10101011 2
3адания
1.16. Составить таблицу соответствия двоичных тетрад и шестнадцатеричных цифр.
1.17. Перевести в восьмеричную и шестнадцатеричную системы счисления следующие целые числа: 1111 2 , 1010101 2 .
1.18. Перевести в восьмеричную и шестнадцатеричную системы счисления следующие дробные числа: 0,01111 2 , 0,10101011 2 .
1.19. Перевести в восьмеричную и шестнадцатеричную системы счисления следующие числа: 11,01 2 , 110,101 2 .
1.20. Перевести в двоичную систему счисления следующие числа: 46,27 8 , ЕF,12 16 .
1.21. Сравнить числа, выраженные в различных системах счисления: 1101 2 и D 16 ; 0,11111 2 и 0,22 8 ; 35,63 8 и 16,С 16 .
В разных областях человеческой деятельности используются разные системы счисления. В повседневной жизни мы используем десятичный счет, машинные операции внутри компьютера осуществляются в двоичном виде, а при просмотре содержимого памяти компьютера оператор видит шестнадцатеричные последовательности. Поэтому нужно научиться быстро переводить числа в двоичной, восьмеричной, десятичной и шестнадцатеричной системах.
Восьмеричная система примечательна тем, что ее основание - восемь - является степенью двойки. А это дает возможность перевести в восьмеричную систему из двоичной и наоборот при помощи математической хитрости. Так как восемь - это два в третьей степени, одна цифра восьмеричной системы будет переходить строго в три цифры двоичной. И переводить можно, используя таблицу:
0 8 | 000 2 |
1 8 | 001 2 |
2 8 | 010 2 |
3 8 | 011 2 |
4 8 | 100 2 |
5 8 | 101 2 |
6 8 | 110 2 |
7 8 | 111 2 |
Например, число 1001011101010 2 нужно перевести в восьмеричную систему счисления.
1 001 011 101 010 2
001 001 011 101 010 2
Получили число 1132 8 .
В этом случае такой упрощенный способ не пройдет. Рассмотрим для примера число 1762 10 , которое нужно перевести в восьмеричный вид.
Теперь нужно записать сначала последний остаток, а затем в обратном порядке частные от деления на всех этапах.
Последний остаток равен 3. Частное на 3 этапе равно 3. Частное на 2 этапе равно 4. Частное на 1 этапе равно 2. Получаем число 3342 8 , которое и является правильным ответом.
Как перевести в восьмеричную систему из десятичной попроще? Сначала из десятичного число нужно перевести в двоичный вид, а затем в восьмеричный с помощью таблицы. Перевод из десятичной системы в двоичную полностью аналогичен описанному алгоритму, только делить надо не на восемь, а, соответственно, на два. Именно потому, что делить на два проще, чем на восемь, переводом в из десятичной или шестнадцатеричной систем в восьмеричную через двоичную нередко пользуются. А так как шестнадцать - это два в четвертой степени, для перевода из шестнадцатеричной системы в двоичную существует такая же таблица, но для отрезков по четыре цифры.
Для представления чисел в микропроцессоре используется двоичная система счисления
.
При этом любой цифровой сигнал может иметь два устойчивых состояния: «высокий уровень» и «низкий уровень». В двоичной системе счисления для изображения любого числа используются две цифры, соответственно: 0 и 1. Произвольное число x=a n a n-1 ..a 1 a 0 ,a -1 a -2 …a -m
запишется в двоичной системе счисления как
x = a n ·2 n +a n-1 ·2 n-1 +…+a 1 ·2 1 +a 0 ·2 0 +a -1 ·2 -1 +a -2 ·2 -2 +…+a -m ·2 -m
где a i
— двоичные цифры (0 или 1).
В восьмеричной системе счисления базисными цифрами являются цифры от 0 до 7. 8 единиц младшего разряда объединяются в единицу старшего.
В шестнадцатеричной системе счисления базисными цифрами являются цифры от 0 до 15 включительно. Для обозначения базисных цифр больше 9 одним символом кроме арабских цифр 0…9 в шестнадцатеричной системе счисления используются буквы латинского алфавита:
10 10 = A 16 12 10 = C 16 14 10 = E 16
11 10 = B 16 13 10 = D 16 15 10 = F 16 .
Например, число 175 10 в шестнадцатеричной системе счисления запишется как AF 16 . Действительно,
10·16 1 +15·16 0 =160+15=175
В таблице представлены числа от 0 до 16 в десятичной, двоичной, восьмеричной и шестнадцатеричной системах счисления.
Десятичная | Двоичная | Восьмеричная | Шестнадцатеричная |
0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 |
2 | 10 | 2 | 2 |
3 | 11 | 3 | 3 |
4 | 100 | 4 | 4 |
5 | 101 | 5 | 5 |
6 | 110 | 6 | 6 |
7 | 111 | 7 | 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 |
16 | 10000 | 20 | 10 |
Двоичная система счисления удобна для выполнения арифметических действий аппаратными средствами микропроцессора, но неудобна для восприятия человеком, поскольку требует большого количества разрядов. Поэтому в вычислительной технике помимо двоичной системы счисления широкое применение нашли восьмеричная и шестнадцатеричная системы счисления для более компактного представления чисел.
Три разряда восьмеричной системы счисления реализуют все возможные комбинации восьмеричных цифр в двоичной системе счисления: от 0 (000) до 7(111). Чтобы преобразовать двоичное число в восьмеричное, нужно объединить двоичные цифры в группы по 3 разряда (триады) в две стороны, начиная от разделителя целой и дробной части. При необходимости слева от исходного числа нужно добавить незначащие нули. Если число содержит дробную часть, то справа от него тоже можно добавить незначащие нули до заполнения всех триад. Затем каждая триада заменяется восьмеричной цифрой.
Пример: Преобразовать число 1101110,01 2 в восьмеричную систему счисления.
Объединяем двоичные цифры в триады справа налево. Получаем
001 101 110,010 2 = 156,2 8 .
Чтобы перевести число из восьмеричной системы в двоичную, нужно каждую восьмеричную цифру записать ее двоичным кодом:
156,2 8 = 001 101 110,010 2 .
Четыре разряда шестнадцатеричной системы счисления реализуют все возможные комбинации шестнадцатеричных цифр в двоичной системе счисления: от 0 (0000) до F(1111). Чтобы преобразовать двоичное число в шестнадцатеричное, нужно объединить двоичные цифры в группы по 4 разряда (тетрады) в две стороны, начиная от разделителя целой и дробной части. При необходимости слева от исходного числа нужно добавить незначащие нули. Если число содержит дробную часть, то справа от нее тоже нужно добавить незначащие нули до заполнения всех тетрад. Затем каждая тетрада заменяется шестнадцатеричной цифрой.
Пример: Преобразовать число 1101110,11 2 в шестнадцатеричную систему счисления.
Объединяем двоичные цифры в тетрады справа налево. Получаем
0110 1110,1100 2 = 6E,C 16 .
Чтобы перевести число из шестнадцатеричной системы в двоичную, нужно каждую шестнадцатеричную цифру записать ее двоичным кодом.
Назначение сервиса . Сервис предназначен для перевода чисел из одной системы счисления в другую в онлайн режиме. Для этого выберите основание системы, из которой необходимо перевести число. Вводить можно как целые, так и числа с запятой.Можно вводить как целые числа, например 34 , так и дробные, например, 637.333 . Для дробных чисел указывается точность перевода после запятой.
Вместе с этим калькулятором также используют следующие:
Пример №1
.
Перевод из 2 в 8 в 16 системы счисления.
Эти системы кратны двум, следовательно, перевод осуществляется с использованием таблицы соответствия (см. ниже).
Для перевода числа из двоичной системы счисления в восьмиричную (шестнадцатиричную) необходимо от запятой вправо и влево разбить двоичное число на группы по три (четыре – для шестнадцатиричной) разряда, дополняя при необходимости нулями крайние группы. Каждую группу заменяют соответствующей восьмиричной или шестнадцатиричной цифрой.
Пример №2
. 1010111010,1011 = 1.010.111.010,101.1 = 1272,51 8
здесь 001=1; 010=2; 111=7; 010=2; 101=5; 001=1
При переводе в шестнадцатеричную систему необходимо делить число на части, по четыре цифры, соблюдая те же правила.
Пример №3
. 1010111010,1011 = 10.1011.1010,1011 = 2B12,13 HEX
здесь 0010=2; 1011=B; 1010=12; 1011=13
Перевод чисел из 2 , 8 и 16 в десятичную систему исчисления производят путем разбивания числа на отдельные и умножения его на основание системы (из которой переводится число) возведенное в степень соответствующую его порядковому номеру в переводимом числе. При этом числа нумеруются влево от запятой (первое число имеет номер 0) с возрастанием, а в правую сторону с убыванием (т.е. с отрицательным знаком). Полученные результаты складываются.
Пример №4
.
Пример перевода из двоичной в десятичную систему счисления.
1010010,101 2 = 1·2 6 +0·2 5 +1·2 4 +0·2 3 +0·2 2 +1·2 1 +0·2 0 + 1·2 -1 +0·2 -2 +1·2 -3 =
= 64+0+16+0+0+2+0+0.5+0+0.125 = 82.625 10
Пример перевода из восьмеричной в десятичную систему счисления.
108.5 8 = 1*·8 2 +0·8 1 +8·8 0 + 5·8 -1 = 64+0+8+0.625 = 72.625 10
Пример перевода из шестнадцатеричной в десятичную систему счисления.
108.5 16 = 1·16 2 +0·16 1 +8·16 0 + 5·16 -1 = 256+0+8+0.3125 = 264.3125 10
Еще раз повторим алгоритм перевода чисел из одной системы счисления в другую ПСС
Двоичная СС | Шестнадцатеричная СС |
0000 | 0 |
0001 | 1 |
0010 | 2 |
0011 | 3 |
0100 | 4 |
0101 | 5 |
0110 | 6 |
0111 | 7 |
1000 | 8 |
1001 | 9 |
1010 | A |
1011 | B |
1100 | C |
1101 | D |
1110 | E |
1111 | F |
Таблица для перевода в восьмеричную систему счисления