Системы счисления

Позиционные системы счисления. Перевод чисел в позиционных системах счисления из одного основания в другое. Арифметические операции в позиционных системах счисления

Позиционные системы счисления

Рассмотрим основные позиционные системы:

Система счисления Основание Алфавит цифр
Двоичная 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

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

Свойства позиционных систем счисления:

  1. В позиционных системах значение цифры зависит от её положения (разряда) в числе.
  2. В позиционных системах счисления с основанием N, основание каждого следующего числа в N раз больше предыдущего.
Разложение чисел. Перевод чисел в десятичную систему счисления

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

в десятичной системе число 5327:

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

в восьмеричной системе число 53278:

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

в шестнадцатеричной системе число 532716:

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. Значит, их легко перевести в двоичную систему для этого нужно знать, сколько разрядов в двоичной системе нужно для записи всех цифр восьмеричной и шестнадцатеричной системы.

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

Двоичная система использует 1 разряд:

2 = 2i, 2 = 21, i = 1.

Восьмеричная система использует 3 разряда:

8 = 8i, 8 = 23, i = 3.

Шестнадцатеричная система использует 4 разряда:

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

Перевод из 8-ричной и 16-ричной систем счисления в двоичную.

Для перевода чисел из восьмеричной или шестнадцатеричной систем счисления в двоичную нужно каждое число преобразовать в группу из трёх (триаду) или в группу из четырёх (тетраду) двоичных цифр соответственно:

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

Решение:

  1. C16 + D16 = 1210 + 1310 = 2510, 25 − 16 = 9, 9 пишем 1 переносим,
  2. B16 + C16 = 1110 + 1210 = 2310, 23 – 16 = 7 + 1(которую перенесли), 8 пишем, 1
  3. A16 + 116, 1010+110 = 1110, 11 = B16

Ответ: ABC16 + CD16 = B8916

Вычитание

Пример. Вычислим 200516 − B716

Решение:

  1. 516 − 716 , но 5 < 7, значит занимаем 1016 из 4-го разряда (а в 3-й и 2-й на место нулей сваливается 1016 – 116 = 16 − 1 = 15 = F16)
    получаем 1016 + 516 = 16 + 5 = 21. Теперь 21 – 7 = 14 = E16
  2. После заёма, во втором разряде есть 15. Вычитаем из него B16 получаем: 15 – B16 = 15 – 11 = 410 = 416
  3. После заёма, в третьем разряде есть 15, но вычитать нечего просто оставляем F16
  4. И наконец, после заёма, в четвёртом разряде вместо 2 оставляем 116

Ответ: 200516 − B716 = 1F4E16

Арифметические операции над числами в разных системах счисления, производятся путём перевода их в одинаковую систему.

Пример. Вычислим 368 + 4716, , а результат представим в двоичную, восьмеричную и шестнадцатеричную систему счисления.

Решение:

  1. 368 раскладываем на триады — 38 = 0112, 68 = 1102, 368 = 0111102
  2. 4716 раскладываем на тетрады — 416 = 01002, 716 = 01112, 4716 = 010001112
  3. 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 “Системы счисления”


  • No Comments

Leave a Reply




Яндекс.Метрика
Rambler's Top100 Рейтинг@Mail.ru Топ Разработка игр