Правила перевода из одной системы счисления в любую другую
В этом уроке разберем правила перевода чисел из любой системы счисления в любую другую
Перевод чисел из одной системы счисления в другую является важной темой в математике и информатике. Существует несколько систем счисления, таких как двоичная, десятичная, восьмеричная и шестнадцатеричная.
Введение
Наименование системы счисления | Алфавит |
Двоичная | 0,1 |
Восьмеричная | 0,1,2,3,4,5,6,7 |
Десятичная | 0,1,2,3,4,5,6,7,8,9 |
Шестнадцатеричная | 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F |
Правило записи
Nq, где N - число, а q - основание
Наименование системы счисления | Запись |
Двоичная | 1012 |
Восьмеричная | 7028 |
Десятичная | 19010 (если основание у числа не указано, то считается что число записано в десятичной системе) |
Шестнадцатеричная | A1F16 |
Десятичная система счисления
Десятичная система счисления - это позиционная система (т.е. значение каждой цифры в записи числа зависит от его разряда) по основанию 10.
12310
В приведенном выше числе три разряда: единицы, десятки и сотни. Можем прочитать это число так 1 сотня, 2 десятки и 3 единицы (100 + 20 + 3).
Каждый разряд мы можем пронумеровать, с младшего (единицы), начиная с ноля.
Индекс разряда | 2 | 1 | 0 |
Число | 1 | 2 | 3 |
После того, как индексы расставлены, можно записать число в развернутой форме. Развернутая форма записывается в виде суммы разрядных слагаемых. Каждое разрядное слагаемое записывается в виде числа умноженного на основание системы возведенное в степень индекса(веса) разряда.
1*102 + 2*101 + 3*100 = 100 + 20 + 3
Перевод из любой системы счисления в десятичную
Когда мы знаем, как записать десятичное число в развернутой форме, мы можем из любой системы счисления перевести в десятичную. Например возьмем число:
10112
1. Расставим индекс(вес) разряда начиная с младшего разряда. Младший разряд, крайний правый, следовательно расставляем индексы справа налево:
Индекс разряда | 3 | 2 | 1 | 0 |
Число | 1 | 0 | 1 | 1 |
2. Теперь запишем число 10012 в развернутой форме:
1*20 + 1*21 + 0*22 + 1*23
3. Получим сумму разрядных слагаемых:
1*20 + 1*21 + 0*22 + 1*23 = 1110
Поздравляю! Теперь мы знаем что число 10112 = 1110
Любое число любой системы счисления, мы можем перевести в десятичную систему счисления, используя развернутую запись.
Для тренировки, переведите числа: 1012, 1112, 1102, в десятичную систему счисления.
Точно так же можно поступать и с другими системами счисления. Например:
2058
Расставим индексы(вес):
Индекс разряда | 2 | 1 | 0 |
Число | 2 | 0 | 5 |
Запишем развернутую запись числа, и выполним вычисления:
2058 = 5*80 + 0*81 + 2*82 = 13310
Разберем другой пример:
1A416
Расставим индексы(вес):
Индекс разряда | 2 | 1 | 0 |
Число | 1 | A | 4 |
Далее мы можем записать развернутую форму, но как нам вычислить второй разряд?
Шестнадцатиричное число | Десятичное число |
0 | 0 |
1 | 1 |
2 | 2 |
3 | 3 |
4 | 4 |
5 | 5 |
6 | 6 |
7 | 7 |
8 | 8 |
9 | 9 |
A | 10 |
B | 11 |
C | 12 |
D | 13 |
E | 14 |
F | 15 |
Из этой таблицы видно что число A16 = 1010
Индекс разряда | 2 | 1 | 0 |
Число | 1 | 10 | 4 |
Запишем развернутую форму числа:
1A416 = 1*162 + 10*161 + 4*160 = 42010
Попробуйте самостоятельно перевести числа: 11C16, 2458, 1102, в десятичную систему счисления.
Перевод из десятичной в любую другую
Чтобы перевести десятичное число в систему счисления с основанием q, нужно последовательно делить десятичное число на q до получения целого остатка, который является младшим разрядом в системе счисления q, и так до тех пор, пока частное не станет меньше q.
Для примера возьмем число 61 и переведем его в двоичную систему счисления.
61 | / | 2 | = | 30 | остаток | 1 |
30 | / | 2 | = | 15 | остаток | 0 |
15 | / | 2 | = | 7 | остаток | 1 |
7 | / | 2 | = | 3 | остаток | 1 |
3 | / | 2 | = | 1 | остаток | 1 |
1 | меньше основания системы счисления q | 1 |
Для удобства можно использовать короткую запись.
61 | 30 | 15 | 7 | 3 | 1 |
1 | 0 | 1 | 1 | 1 | 1 |
Запишем число начиная справа на лево 1111012.
6110 = 1111012
Этот алгоритм подходит для перевода в любую систему счисления. Например переведем число 61 в восьмеричную систему счисления. Основание системы счисления для перевода 8, следовательно q = 8.
61 | / | 8 | = | 7 | остаток | 5 |
7 | меньше основания системы счисления q | 7 |
61 | 7 |
5 | 7 |
Запишем число справа на лево 758.
6110 = 758
Довольно просто. Теперь попробуем перевести десятичное число 61 в шестнадцатеричное, следовательно q = 16.
61 | / | 16 | = | 3 | остаток | 13 |
3 | меньше основания системы счисления q | 3 |
Используя короткую запись:
61 | 3 |
13 | 3 |
Посмотрим на таблицу соответствия между десятичными и шестнадцатеричными числами.
Шестнадцатиричное число | Десятичное число |
0 | 0 |
1 | 1 |
2 | 2 |
3 | 3 |
4 | 4 |
5 | 5 |
6 | 6 |
7 | 7 |
8 | 8 |
9 | 9 |
A | 10 |
B | 11 |
C | 12 |
D | 13 |
E | 14 |
F | 15 |
13 соответсвует D. Запишем в ответ шестнадцатиричное число.
6110 = 3D16
Перевод дробных чисел в десятичную систему счисления
Чтобы перевести дробное число из системы счисления по основанию q, в десятичную систему счисления, мы будем пользоваться теми же правилами что и при переводе целого числа, за исключением того что разряды дробной части будут пронумерованы отрицательными числами.
Для примера возьмем число:
101,112
И переведем его в десятичную систему счисления. Это число записано в двоичной системе счисления, по основанию 2.
Расставим индексы(вес) разрядов:
Индекс разряда | 2 | 1 | 0 | -1 | -2 | |
Число | 1 | 0 | 1 | . | 1 | 1 |
Теперь запишем число 101,112 в развернутой форме и выполним вычисления:
101,112 = 1*22 + 0*21 + 1*20 + 1*2-1 + 1*2-2 = 4 + 0 + 1 + 0,5 + 0,25 = 5,7510
Получим:
101,112 = 5,7510
По тому же алгоритму, возможно переводить из любой системы счисления в десятичную.
Самостоятельно переведите в десятичную систему счисления: 121,223, 55,418, 4AC16