ЧАСТЬ 1

ИНФОРМАТИКА

Электронное учебно-методическое пособие

 

 
 

 

2.2. Перевод натуральных чисел из одной системы счисления в другую

Перевод из десятичной системы счисления

Перевод числа из десятичной системы счисления в позиционную систему счисления с основанием X можно выполнить следующим образом:

1) число, представленное в десятичной системе счисления, делится на X, при этом полученный остаток (натуральное число, меньшее X) запоминается;

2) полученное от деления число вновь делится на X, полученный остаток также запоминается;

3) деление (и запоминание остатков) продолжается до тех пор, пока не будет получено число, меньшее X.

После этого формируется число в позиционной системе счисления с основанием X: полученное последнее число и остатки записывают в обратном порядке, то есть справа записывают первый остаток, левее следующий остаток и так далее, в конце (слева) записывают последнее полученное число, меньшее X.


Пример 1.

Перевод числа 12 из десятичной системы счисления в позиционную систему счисления с основанием 2 (X = 2) можно выполнить так:

12 : 2 = 6 (остаток 0), так как 6 не меньше 2, то
6 : 2 = 3 (остаток 0), так как 3 не меньше 2, то
3 : 2 = 1 (остаток 1), так как частное 1 меньше 2, то записываем число в обратном порядке 11002.

То есть 12 = 11002.


Пример 2.

Перевод числа 250 из десятичной системы счисления в восьмеричную систему счисления (X = 8) можно выполнить аналогичным образом:


250 : 8 = 31 (остаток 2), так как 31 не меньше 8, то
31 : 8 = 3 (остаток 7), так как частное 3 меньше 8, то записываем число в обратном порядке 3728.

То есть 250 = 3728.


Пример 3.

Перевод числа 250 из десятичной системы счисления в шестнадцатеричную систему счисления (X = 16) можно выполнить аналогично:

250 : 16 = 15 (остаток 10), так как частное 15 меньше 16, то записываем число (учитывая, что 15 = F, 10 = A) в обратном порядке FA16.

То есть 250 = FA16.

Попробуйте самостоятельно перевести число 250 в систему счисления с основанием 6 и сравните с ответом (ответ: 250 = 6546).


Перевод в десятичную систему счисления


Перевод числа из позиционной системы счисления с основанием X в десятичную систему счисления можно выполнить, представив число в виде записанного ранее ряда:

an Xn + an-1 Xn-1 + … + a2 X2 + a1 X1 + a0 X0,

для которого надо выполнить операции возведения в степень, умножения и сложения.

Например,


11002 = 1 · 23 + 1 · 22 + 0 · 21 + 0 · 20 = 1 · 8 + 1 · 4 + 0 · 2 + 0 · 1 = 8 + 4 + 0 + 0 = 12,

3728 = 3 · 82 + 7 · 81 + 2 · 80 = 3 · 64 + 7 · 8 + 2 · 1 = 192 + 56 + 2 = 250,

FA16 = F · 161 + A · 160 = 15· 161 + 10 · 160 = 240 + 10 = 250.


Попробуйте самостоятельно перевести число 6546 в десятичную систему счисления.


Перевод чисел между системами счисления, отличными
от десятичной


В общем случае перевод чисел из позиционной системы счисления с основанием Y (отличным от 10) в позиционную систему счисления с основанием Z (также отличным от 10) можно выполнить следующим образом.

Число, записанное в системе с основанием Y, следует последовательно делить на число Z (это число Z должно быть предварительно представлено в системе счисления с основанием Y) и затем записать полученное последнее число и остатки в обратном порядке.

Например, надо перевести число 3068 в троичную систему счисления (Y = 8, Z = 3). Следует отметить, что число три (представленное в троичной системе счисления) в восьмеричной системе счисления также равно трём. Тогда при переводе числа 3068 в троичную систему счисления можно это число последовательно делить на 3 (в восьмеричной системе счисления).

3068 : 3 = 1028 (остаток 0), так как 1028 не меньше 3, то
1028 : 3 = 268 (остаток 0), так как 268 не меньше 3, то
268 : 3 = 78 (остаток 1), так как 78 не меньше 3, то
78 : 3 = 2 (остаток 1), так как 2 меньше 3, то записываем число в обратном порядке 211003. То есть 3068 = 211003.


Например, надо выполнить обратный перевод, то есть перевести число 211003 в восьмеричную систему счисления (Y = 3, Z = 8). Число 8 (представленное в восьмеричной системе счисления) будет представлено числом 223 в троичной системе счисления.

Тогда при переводе числа 211003 в восьмеричную систему счисления можно это число последовательно делить на 223.


211003 : 223 = 2203 (остаток 203, то есть 203 = 610 = 68), так как 2203 не меньше 223, то

2203 : 223 = 103 (остаток 0), так как 103 меньше 223, то (учитывая, что 103 = 310 = 38) записываем число в обратном порядке 3068.

То есть 211003 = 3068.


Если основания систем счисления связаны соотношением

Y = Zn (где n – натуральное число),

то перевод чисел из одной указанной системы в другую упрощается. В этом случае, при переводе из системы с основанием Y в систему с основанием Z, число разбивается на группы по n чисел в группе. Каждая группа переводится в систему с основанием Z, затем полученные цифры записывают в порядке следования групп.

При обратном переводе (из системы с основанием Z в систему с основанием Y) каждая цифра числа (представленная в системе с основанием Z) переводится в систему с основанием Y (по n знаков в каждой группе, при этом недостающие знаки дополняются нулями).

В настоящее время в компьютерах используется двоичная система счисления, а для отображения данных (представленных в памяти компьютера) широко используется также шестнадцатеричная система счисления. Так как основания этих систем счисления связаны соотношением

Y = Zn (в данном случае 16 = 24),

то перевод чисел из одной указанной системы в другую можно выполнить указанным способом.

При переводе двоичного числа в шестнадцатеричную систему счисления можно выполнить следующие действия.

Вначале разбиваем двоичное число на группы по 4 разряда (справа налево). Если в последней группе окажется менее 4 разрядов, то недостающие разряды дополняем нулями (слева).

Затем каждую группу двоичных разрядов переводят в десятичную систему (при этом полученные десятичные числа представляют шестнадцатеричными цифрами) и записывают эти цифры в порядке следования групп.

Например, при переводе числа 1110001112 в шестнадцатеричную систему счисления разбивают данную последовательность на группы (дополнив недостающие разряды нулями)

00012 11002 01112,

затем выполняют перевод в десятичную систему счисления


00012 = 0 · 23 + 0 · 22 + 0 · 21 + 1 · 20 = 0 + 0 + 0 + 1 = 1,

11002= 1 · 23 + 1 · 22 + 0 · 21 + 0 · 20= 1 · 8 + 1 · 4 + 0 · 2 + 0 · 1 = 8 + 4 + 0 + 0 = 12,

01112 = 0 · 23 + 1 · 22 + 1 · 21 + 1 · 20 = 0 · 8 + 1 · 4 + 1 · 2 + 1 · 1 = 0 + 4 + 2 + 1 = 7,


то есть, получаем три числа 110, 1210, 710.

Так как 110 = 116, 1210 = C16, 710 = 716, то получаем


1110001112 = 1C716.


Обратный перевод шестнадцатеричного числа в двоичную систему счисления можно выполнить следующим образом.

Каждую шестнадцатеричную цифру представляют десятичным числом, которую переводят в двоичную систему (представляя 4 разрядами). Получившиеся двоичные числа записывают в порядке их следования.

Например, при переводе числа E216 в двоичную систему счисления это число представляют так:

E16 = 1410, 216 = 210,

далее выполняют перевод в десятичную систему счисления

14 = 11102, 2 = 00102

и записывают E216 = 111000102.


Аналогичным образом можно переводить число, например, из двоичной системы счисления в восьмеричную, но, так как

8 = 23,

то последовательность бит разбивают на группы по 3 разряда.

 

 


© Сибирская государственная геодезическая академия (СГГА), 2011