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

Перевод из двоичной системы в десятичную легко выполнить по схеме (2).

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

Пример: перевести 79 в двоичную систему счисления (начинаем действия справа). Делим последовательно содержимое клетки верхнего ряда на 2 (основание системы счисления, в которую переводим), записываем частное слева в верхнюю клетку, а остаток от деления слева в нижнюю клетку. Первый шаг: делим 79 на 2, частное 39 запишем левее в верхнюю клетку а в клетку под частным запишем остаток от деления (он может быть только 0 или 1).

¬ Частные от деления на 2 Исходное число = 79
1 0 0 1 1 1 1 ¬ Остатки  

Получение на очередном шаге частного =0 это признак окончания процесса. Цепочка остатков дает значение числа в требуемой системе счисления, в нашем примере – в двоичной:
1 0 0 1 1 1 1 = 1*26+0*25+0*24+1*23+1*22+1*21+1*20

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

Существуют способы перевода, позволяющие получать цифры, начиная со старшего разряда. Наиболее распространённый способ состоит в том, что из исходного числа вычитают степень системы счисления и подсчитывают количество вычитаний. Если при очередном вычитании получается отрицательный результат, то вычитания следует остановить, запомнить последнюю полученную разность для получения младших цифр. Подсчитанное количество вычитаний дает цифру в старшем разряде. Для получения следующей (младшей) цифры снова начинаем вычитать из запомненной разности степень основания, но на единицу меньшую. Недостаток этого алгоритма состоит в том, что надо как-то решить, какой должна быть степень основания в начале процесса.

Заметим, что по тем же схемам можно осуществлять перевод из любой системы в любую, только надо уметь выполнять арифметические действия в исходной системе счисления.

В двоичной системе счисления
10111b=(1*24+0*23+1*22+1*21+1*20)d=1*16+0*8+1*4+1*2+1*1=16+4+2+1=23 (2а)

(все эти числа изображены в 10-чной системе).

Степени двойки: 1, 2, 4, 8, 16, 32, 64, 128, 256, …
Отметим, что 210 = 1024 » 103 (килобайт), 220 = 1048576 » 106 (мегабайт).

Шестнадцатеричная система счисления – имеет основание 16. Для изображения шестнадцати цифр используются 0,…9 и буквы латинского алфавита A(10), B(11), C(12), D(13), E(14), F(15). См. в качестве примера соотношение (3) ранее.

Шестнадцатеричная (далее hex) система используется в вычислительной технике в основном для компактного изображения двоичных чисел, так как одна hex-цифра однозначно соответствует четырехразрядной комбинации двоичных цифр. Это несложно узреть из следующих преобразований:

N = … + 27*b7 + 26*b6 + 25*b5 + 24*b4 + 23*b3 + 22*b2 + 21*b1 +20*b0 =
= …+ (23*b7 + 22*b6 + 21*b5 + 20*b4)*24 + (23*b3 + 22*b2 + 21*b1 +20*b0) =
= …+ (23*b7 + 22*b6 + 21*b5 + 20*b4)*161 + (23*b3 + 22*b2 + 21*b1 +20*b0) *160 =
= …h1*161 +h0*160

То же можно сказать о восьмеричной системе счисления, для которой одна восьмеричная цифра однозначно соответствует трехразрядному двоичному числу.

Соотношение между Hex, Bin и десятичными числами от 0 до 1610
Hex Dec Bin
0 00 0 0000
1 01 0 0001
2 02 0 0010
3 03 0 0011
4 04 0 0100
5 05 0 0101
6 06 0 0110
7 07 0 0111
8 08 0 1000
9 09 0 1001
A 10 0 1010
B 11 0 1011
C 12 0 1100
D 13 0 1101
E 14 0 1110
F 15 0 1111

10 16 1 0000

В шестнадцатиричной
7EAh=(7*162+14*161+10*160)=7*256+14*16+10*1=1792+224+10= 2026 (3)
(все эти числа изображены в 10-чной системе).

Таблицу соответствия между шестнадцатеричными цифрами от 0 до F следует запомнить на память.