Позиционные системы счисления. Перевод чисел в позиционных системах счисления из одного основания в другое. Арифметические операции в позиционных системах счисления
Рассмотрим основные позиционные системы:
Система счисления | Основание | Алфавит цифр |
---|---|---|
Двоичная | 2 | 0, 1 |
Восьмеричная | 8 | 0, 1, 2, 3, 4, 5, 6, 7 |
Десятичная | 10 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 |
Шестнадцатеричная | 16 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F |
Из основания видно, сколько различных цифр в алфавите содержит та или другая система.
Свойства позиционных систем счисления:
- В позиционных системах значение цифры зависит от её положения (разряда) в числе.
- В позиционных системах счисления с основанием N, основание каждого следующего числа в N раз больше предыдущего.
Согласно свойствам позиционных систем счисления разложим число 5327 в разных системах по следующему правилу: каждую цифру умножаем на основание числа, которое возведено в степень равной позиции цифры в числе минус 1. Затем полученные числа суммируются:
5 = 5 * 103 = 5 * 1000 = 5000
3 = 3 * 102 = 3 * 100 = 300
2 = 2 * 101 = 2 * 10 = 20
7 = 7 * 100 = 7 * 1 = 7
5000 + 300 + 20 + 7 = 5327
5 = 5 * 83 = 5 * 512 = 2560
3 = 3 * 82 = 3 * 64 = 192
2 = 2 * 81 = 2 * 8 = 16
7 = 7 * 80 = 7 * 1 = 7
53278 = 2560 + 192 + 16 + 7 = 277510
5 = 5 * 163 = 5 * 4096 = 20480
3 = 3 * 162 = 3 * 256 = 768
2 = 2 * 161 = 2 * 32 = 32
7 = 7 * 160 = 7 * 1 = 7
532716 = 20480 + 768 + 32 + 7 = 2128710
Перевод чисел в десятичную систему счисления осуществляется по упомянутым выше разложениям чисел, при этом разложенное число суммируется, а полученный результат и есть число в десятичной системе.
Для записи дробных чисел используется отрицательные степени основания:
27,46110 = 2*101 + 7*100 + 4*10-1 + 6*10-2 + 1*10-3
Разложим числа записанные в разных системах счисления:
101,012 = 1*22 + 0*21 + 1*20 + 0*2-1 + 1*2-2
673,28 = 6*82 + 7*81 + 3*80 + 2*8-1
8A,F16 = 8*161 + A*160 + F*16-1
Для перевода десятичного числа в двоичное, последовательно делим число на 2, до тех пор, пока частное не будет меньше делителя. После этого, записываем остатки в обратном порядке, а на первое место помещаем последнее частное(которое меньше делителя)
Переведём число 1910 в двоичное:
Делимое | 19 | 9 | 4 | 2 | 1 |
Делитель (основание системы) | 2 | 2 | 2 | 2 | 2 |
Остаток | 1 | 1 | 0 | 0 |
Остаток в обратном порядке есть 0011, теперь последнее частное ставим вперёд:
100112 = 1910
Аналогично переводят десятичные целые числа в остальные системы заменяя в делителе основание. Пример переведём число 68010 в шестнадцатеричное:
Делимое | 680 | 42 | 2 |
Делитель (основание системы) | 16 | 16 | 16 |
Остаток | 8 | A(10) |
Остаток в обратном порядке есть A8, теперь последнее частное ставим вперёд:
2A816 = 68010
Последовательно умножаем дробную часть на 2, записывая целую часть в прямом порядке. Повторить до тех пор, пока не получится нулевая дробная часть.
Переведём число 0,7510 в двоичное:
Десятичная дробь | 0,75 | 0,5 | 0,0 |
Множитель (основание системы) | 2 | 2 | 2 |
Целая часть произведения | 1 | 1 |
Переписываем целую часть в прямом порядке 0,7510 = 0,112
Аналогично переводят десятичные дробные числа в остальные системы заменяя в множителе основание.
Переведём число 0,406251010 в восьмеричное:
Десятичная дробь | 0,4062510 | 0,25 | 0,0 |
Множитель (основание системы) | 8 | 8 | 8 |
Целая часть произведения | 3 | 2 |
Переписываем целую часть в прямом порядке 0,406251010 = 0,328
Числа записанные в двоичной, восьмеричной и шестнадцатеричной системе являются числами основания которых есть степень 2. Значит, их легко перевести в двоичную систему для этого нужно знать, сколько разрядов в двоичной системе нужно для записи всех цифр восьмеричной и шестнадцатеричной системы.
Мы уже изучили измерение информации, поэтому можем посчитать, сколько каждой системе счисления требуется бит (разрядов) для записи всех их символов:
2 = 2i, 2 = 21, i = 1.
8 = 8i, 8 = 23, i = 3.
16 = 16i, 16 = 24, i = 4.
Т.о. для перевода целого 2-го числа в 8-ое, его нужно разбить на группы по 3 цифры(триады) справа налево. Если в крайней левой группе окажется меньше трёх цифр, то дополнить слева нулями. Затем каждую группу преобразовать нужную систему. Для перевода полезно подготовить таблицу преобразования:
8-ая цифра | триада |
---|---|
0 | 000 |
1 | 001 |
2 | 010 |
3 | 011 |
4 | 100 |
5 | 101 |
6 | 110 |
7 | 111 |
Пример. Переведём двоичное число 1010012 в восьмеричное:
Решение. Разобьём по 3 цифры(нули слева добавлять не нужно) 101 001 получим 58 и 18: 1010012 = 518
Для дробных чисел разбиваем на триады слева направо, и если в последней правой группе окажется меньше трёх цифр, дополним её справа нулями:
Пример. Переведём дробное двоичное число 0,110102 в восьмеричное:
Решение. 110 10(дополним справа нулями) 110 100. Получим 68 и 48: 0,110102 = 0,648
Перевод целого 2-го в 16-ное аналогичен, только здесь разбиваем группы по 4 цифры(тетрады) справа налево, и также если в крайней левой группе меньше четырёх цифр, то добавляем слева нулями
16-ая цифра | тетрада |
---|---|
0 | 0000 |
1 | 0001 |
2 | 0010 |
3 | 0011 |
4 | 0100 |
5 | 0101 |
6 | 0110 |
7 | 0111 |
8 | 1000 |
9 | 1001 |
A | 1010 |
B | 1011 |
C | 1100 |
D | 1101 |
E | 1110 |
F | 1111 |
Пример. Число из предыдущего примера 1010012 переведём в шестнадцатеричное:
Решение. Разобьём по 4 цифры справа налево 10 1001 (дополнив нулями крайнюю левую группу) 0010 1001 получаем 216 и 916: 1010012 = 2916
Для дробных чисел разбиваем на тетрады слева направо, и если в последней правой группе окажется меньше четырёх цифр, дополним её справа нулями:
Пример. Переведём дробное двоичное число 0,1101012 в восьмеричное:
Решение. 1101 01(дополним справа нулями) 1101 0100. Получим D16 и 416: 0,1101012 = 0,D416
Для перевода чисел из восьмеричной или шестнадцатеричной систем счисления в двоичную нужно каждое число преобразовать в группу из трёх (триаду) или в группу из четырёх (тетраду) двоичных цифр соответственно:
478 = разбиваем на триады: 4 = 100, 7 = 111. 478 = 1001112
AB16 = разбиваем на триады: A = 1010, B = 1011. AB16 = 101010112
Сложение производится по обычному правилу столбиком, но нужно учитывать, что если при сложении двух чисел
получается число с основанием большим чем у слагаемых, то полученное при сложении число нужно перевести соответствующую
систему счисления. Пример 5 + 7 = 12, НО 58 + 78 ≠ 12, точнее нужно 12 перевести в
восьмеричную систему(можно так 12 − 8 = 4. 4 пишем, а 1 переносим): 58 + 78 = 148.
Аналогично для сложения шестнадцатеричных чисел 5 + 7 будет также 12, но 12 в 16-ричном коде будет С.
Пример. Вычислим B16 + D16
Решение. B16 = 1110, D16 = 1310. 1110+1310 = 2410 , 24 − 16 = 8 пишем 1 переносим: B16 + D16 = 1816
Пример. Сложим большие шестнадцатеричные числа ABC16 и CD16
Решение:
- C16 + D16 = 1210 + 1310 = 2510, 25 − 16 = 9, 9 пишем 1 переносим,
- B16 + C16 = 1110 + 1210 = 2310, 23 – 16 = 7 + 1(которую перенесли), 8 пишем, 1
- A16 + 116, 1010+110 = 1110, 11 = B16
Ответ: ABC16 + CD16 = B8916
Пример. Вычислим 200516 − B716
Решение:
- 516 − 716 , но 5 < 7, значит занимаем 1016 из 4-го разряда (а в 3-й и 2-й на место нулей сваливается 1016 – 116 = 16 − 1 = 15 = F16)
получаем 1016 + 516 = 16 + 5 = 21. Теперь 21 – 7 = 14 = E16 - После заёма, во втором разряде есть 15. Вычитаем из него B16 получаем: 15 – B16 = 15 – 11 = 410 = 416
- После заёма, в третьем разряде есть 15, но вычитать нечего просто оставляем F16
- И наконец, после заёма, в четвёртом разряде вместо 2 оставляем 116
Ответ: 200516 − B716 = 1F4E16
Арифметические операции над числами в разных системах счисления, производятся путём перевода их в одинаковую систему.
Пример. Вычислим 368 + 4716, , а результат представим в двоичную, восьмеричную и шестнадцатеричную систему счисления.
Решение:
- 368 раскладываем на триады — 38 = 0112, 68 = 1102, 368 = 0111102
- 4716 раскладываем на тетрады — 416 = 01002, 716 = 01112, 4716 = 010001112
- 368 + 4716 = 0111102 + 010001112 = 11001012
Теперь полученное число 11001012 переведём восьмеричную и шестнадцатеричную систему:
11001012 делим на триады = 0012, 1002 и 1012 = 18, 48, и 58=1458
11001012 делим на тетрады = 01102, 01012 = 616, и 516 = 6516
11001012 = 1458 = 6516
0 Responses to “Системы счисления”