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

 

Для перевода целого десятичного числа N в систему счисления с основанием p необходимо последовательно разделить N на p с остатком. Первое неполное частное опять следует поделить на p с остатком и так далее, пока не будет получено неполное частное меньше, чем основание. Первый остаток будет соответствовать разряду единиц числа с основанием p, второй остаток – следующему разряду и т.п. Последнее неполное частное будет соответствовать старшему разряду числа с основанием p.

Например, переведем число 187 в восьмеричную систему.

187 : 8 = 23 (3 в остатке)

23 : 8 = 2 (7 в остатке)

2 : 8 =0 (2 в остатке, так как 2 < 8)

Получаем число в восьмеричной системе 2738

Системы счисления с основанием 2n

 

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

В табл. 2.14 представлены целые числа от 0 до 7 для десятичной, двоичной и восьмеричной систем.

Таблица 2.14

Связь двоичной и восьмеричной систем

p=10
p=2
p=8

Первые незначащие нули для двоичных чисел от 000 до 011 приведены здесь для удобства пересчета чисел из восьмеричной системы в двоичную. Например, для перевода числа 2138 в двоичную систему счисления следует заменить каждый разряд восьмеричного числа триадой (тройкой) двоичных чисел. Получим:

2138 = 0100010112

Первый незначащий ноль результата можно отбросить, то есть

2138 = 100010112

В табл. 2.15 представлены целые числа от 0 до 15 для десятичной, двоичной, шестнадцатеричной систем.

Первые незначащие нули для двоичных чисел от 0000 до 0111 приведены здесь для удобства пересчета чисел из шестнадцатеричной системы в двоичную.

Таблица 2.15

Связь двоичной и шестнадцатеричной систем

p=10
p=2
p=16

 

p=10
p=2
p=16 A B C D E F

 

Например, для перевода числа 72A16 или 72Ah (где h от hexadecimal – шестнадцатеричная) в двоичную систему счисления следует заменить каждый разряд шестнадцатеричного числа тетрадой (четверкой) двоичных чисел. Получим:

72A16 = 0111001010102

Первый незначащий ноль слева можно отбросить, то есть

72A16 = 111001010102

Для перевода шестнадцатеричного числа в восьмеричное число целесообразно в качестве промежуточной использовать двоичную систему. Например, для перевода числа

72A16 = 111001010102

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

11'100'101'0102

и заменим их восьмеричными числами (табл. 2) 34528

Таким образом, 72A16 = 34528

 

Арифметические действия

 

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

12 + 12 = 102

68 + 78 = 158

Поскольку p = 10 – это всегда основание в соответствующей системе счисления, а p2 = 100, p3 = 1000 и т.д., то следующие операции будут однотипными для любой системы счисления:

· для умножения целого числа на p достаточно приписать к числу ноль справа, для умножения на p2 – два нуля справа и т.д.,

· для умножения дробного числа на p следует перенести запятую, разделяющую целые и дробные части, на разряд вправо, для умножения на p2 – на два разряда вправо и т.д.,

· для деления числа на p следует перенести запятую, разделяющую целые и дробные части, на разряд влево, для деления на p2 – на два разряда влево и т.д.

· для целочисленного деления числа на p следует отбросить его младший разряд, для целочисленного деления числа на p2 следует отбросить два младших разряда и т.д.,

· для определения целочисленного остатка при делении числа на p следует взять его младший разряд, при делении числа на p2 – два младших разряда и т.д..

Примеры:

1) Сложение в двоичной системе счисления + -----------   2) Умножение в двоичной системе счисления X ----------- -----------

3) 10·10 = 100 – в любой системе счисления.

4) 110112 \ 102 = 11012 – целочисленное деление.

5) 1378 mod 108 = 7 – целочисленный остаток.

6) В какой системе счисления 7·7 = 61 ?

Решение: Обозначим основание системы счисления, для которой данное равенство выполняется, через неизвестное p. Переведем обе части равенства в десятичную систему.

49 = 6·p1 + 1·p0

6·p = 48

p = 8

 

7) В какой системе счисления 34 + 31 = 120 ?

Решение: Обозначим основание системы счисления, для которой данное равенство выполняется, через неизвестное p. Переведем обе части равенства в десятичную систему.

3·p1 + 4·p0 + 3·p1 + 1·p0 = 1·p2 + 2·p1 + 0·p0

p2 - 4·p – 5 = 0

p1 = 5; p2 = -1

Отрицательный корень отбрасываем, то есть p = 5.