Лаб_работы / Лабораторная_работа_4 / Методы переводода чисел
.docМетоды перевода чисел из одной системы счисления в другую
Метод 1. Из любой системы счисления в десятичную систему.
Число представляется в виде суммы произведений ЦИФРЫ на ВЕС РАЗРЯДА.
Вес разряда – это основание системы счисления в степени равной номеру разряда.
Разряды нумеруются от разряда единиц: влево – в положительную сторону, вправо – в отрицательную. Разряд единиц имеет номер 0.
5642,9(10)
Номер разряда |
3 |
2 |
1 |
0 |
-1 |
|
|
5 |
6 |
4 |
2, |
9(10) |
= 5·103 + 6·102 + 4·101 + 2·100 + 9·10-1 |
Вес разряда |
103 |
102 |
101 |
100 |
10-1 |
|
1001,101(2) = 9,625(10)
Номер разряда |
3 |
2 |
1 |
0 |
-1 |
-2 |
-3 |
|
|
1 |
0 |
0 |
1, |
1 |
0 |
1(2) |
= 1·23 + 0·22 + 0·21 + 1·20 + 1·2-1 + 0·2-2 + 1·2-3 = |
Вес разряда |
23 |
22 |
21 |
20 |
2-1 |
2-1 |
2-1 |
= 8 + 0 + 0 + 1 + + 0 + = 9,625(10) |
214,6(8) = 140,75(10)
Номер разряда |
2 |
1 |
0 |
-1 |
|
|
2 |
1 |
4, |
6(8) |
= 2·82 + 1·81 + 4·80 + 6·8-1 = 128 + 8 + 4 + = 140,75(10) |
Вес разряда |
82 |
81 |
80 |
8-1 |
|
2В,Е(16) = 43,875(10)
Номер разряда |
1 |
0 |
-1 |
|
|
2 |
В, |
Е(16) |
= 2·161 + 11·160 + 14·16-1 = 32 + 11 + = 43,875(10) |
Вес разряда |
161 |
160 |
16-1 |
|
Метод 2. Из десятичной системы счисления в любую другую.
В этом случае целая и дробная часть переводятся по отдельным правилам.
Для целой части: нужно последовательно разделить число и частные на основание новой системы счисления до получения остатка. Деление продолжается до тех пор, пока частное не станет МЕНЬШЕ делителя, т.е. основания новой системы счисления.
В первом шаге деления получается МЛАДШАЯ цифра числа.
Переведем число 30(10) в двоичную, восьмеричную и шестнадцатеричную систему счисления:
в двоичную
1. Сначала разделим 30 на 2. Получаем 15 (в остатке – 0)
2. Теперь делим на 2 получившееся частное: 15:2=7 (в остатке – 1)
3. Опять делим на 2 получившееся частное: 7:2=4 (в остатке – 1)
4. Снова делим на 2 получившееся частное: 4:2=2 (в остатке – 0)
5. Продолжаем деление: 2:2=1 (в остатке – 0). Деление прекращается, т.к получившееся частное меньше основания новой системы счисления (1<2)
Деление обычно делают в столбик:
30 |
2 |
|
|
|
0 |
15 |
2 |
|
|
|
1 |
7 |
2 |
|
|
|
1 |
3 |
2 |
|
|
|
1 |
1 |
Результат перевода записывается В ОБРАТНОМ ПОРЯДКЕ. Первая цифра полученного результата – это последнее частное: 11110(2)
Аналогично производится перевод в восьмеричную системы счисления:
30 |
8 |
6 |
3 |
Деление прекращается после первого же шага деления, т.к. получившееся частное меньше основания СС (3<8). Результат: 36(8)
Аналогично производится перевод в шестнадцатеричную систему счисления:
30 |
16 |
14 |
1 |
Деление прекращается после первого же шага деления. Остаток «14» записывается цифрой Е. Результат: 1E(16)
Метод 3. Поразрядный метод перевода чисел: перевод чисел между двоичной, восьмеричной и шестнадцатеричной системами счисления туда и обратно
Для перевода из двоичной системы счисления в восьмеричную: 1) число ОТ ЗАПЯТОЙ вправо и влево разбивается на группы по 3 разряда (триады);
2) недостающие разряды В ДРОБНОЙ ЧАСТИ числа дополняются нулями;
3) каждая триада двоичных цифр заменяется одной восьмеричной цифрой в соответствии с ТАБЛИЦЕЙ ПЕРЕКОДИРОВКИ.
При обратном переводе каждая восьмеричная цифра заменяется ТРОЙКОЙ двоичных цифр (триадой).
Таблица перекодировки
2 |
0 |
1 |
10 |
11 |
100 |
101 |
110 |
111 |
1000 |
1001 |
1010 |
1011 |
1100 |
1101 |
1110 |
1111 |
8 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
16 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
Переведем число 10011,101(2) в восьмеричную систему счисления:
1) вправо и влево от запятой разбиваем число на триады:
10 011 , 11(2)
2) т.к. справа триады не получилось – слева к числу дописываем один ноль:
10 011 , 110(2)
3) по таблице перекодировки заменяем каждую триаду на одну цифру:
10 011 , 110(2)
2 3 , 6(8)
Таким образом, результат: 23,6(8)
Переведем теперь число 73,4(8) из восьмеричной в двоичную систему счисления:
По таблице перекодировки: 7(8) = 111(2); 3(8) = 011(2); 4(8) = 100(2). Таким образом, результат получается: 111011,1(2)
Обратите внимание на следующий момент: в таблице перекодировки 3(8) = 11(2). Но по правилу перевода одна восьмеричная цифра заменяется на ТРИ двоичные цифры, поэтому вперед дописывается 0 – он не изменяет значения числа: 3(8) = 011(2). И наоборот: нули в конце дробной части можно отбросить: 0,100(2) = 0,1(2)