Перевод целых чисел из десятичной системы счисления
Для перевода целого десятичного числа 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.