- •Позиционные системы счисления
- •Правило перевода целого числа из любой р – ичной системы счисления в 10 – ую.
- •Правило перевода целого числа из 10 – ой системы счисления в систему счисления с основанием р (метод деления уголком)
- •Метод триад и тетрад
- •Перевод действительных чисел
- •Арифметические операции в позиционных системах счисления
- •1) 7 *L Переведем l в восьмеричную систему счисления
- •3) Переведём 66648 в шестнадцатеричную систему счисления
- •Количество информации
- •1. Алфавитный (технический) подход
- •2. Вероятностный подход
- •Единицы измерения информации
Перевод действительных чисел
Любое число N может быть единственным образом представлено в системе счисления с основанием р.
N = an pn + an-1 pn-1+ ... + a0 p0 + a-1 p-1 + a-2 p-2 + ... + a-m p-m,
где ai – цифры системы счисления; 0≤ ai p-1; an 0;
n и m – число целых и дробных разрядов, соответственно.
Перевод чисел в 10-чную систему счисления.
Для того чтобы перевести число в 10-чную систему счисления, необходимо составить сумму степенного ряда с основанием системы, в которой записано число, а затем найти значение этой суммы.
Пример. Перевести число 110110,012 в 10-чную систему.
5 4 3 2 1 0 1 2
110110,012 = 1*25 + 1*24 + 0*23 + 1*22 + 1*21 + 0*20 + 0*2-1 + 1*2-2 =
= 32 + 16 + 4 + 2 + 0,25 = 54,2510
Пример. Перевести число A2F,416 в 10-чную систему.
2 1 0 1
A2F,416 = 10*162 + 2*161 + 15*160+ 4*16-1 = 2560 + 32 + 15 + 0,25 = 2607,2510
Перевод чисел из 10-чной системы счисления.
Перевести целую часть в систему счисления с основанием р (метод деления уголком)
Перевести дробную часть в систему счисления с основанием р
При переводе правильной десятичной дроби в систему счисления с основанием р необходимо:
сначала саму дробь, а затем дробные части всех последующих произведений последовательно умножать на p, отделяя после каждого умножения целую часть произведения.
Число в новой системе счисления записывается в виде целых частей произведения, начиная с первого.
Умножение производится до тех пор, пока дробная часть пpоизведения не станет равной нулю. Это значит, что сделан точный перевод. В противном случае перевод осуществляется до заданной точности. Достаточно того количества цифр в результате, которое поместится в ячейку.
В ответе перед запятой следует записать целую часть, а после запятой – дробную часть.
Пример: Перевести число 0,532 из 10-тичной системы в двоичную с точностью до тысячных.
0
,
532
* 2
1, 064
* 2
0, 128
* 2
0, 256 Ответ: 0,53210 = 0,1002
Пример: Перевести число 0,974 из 10-тичной системы в 16-ричную с точностью до тысячных.
0, 974
* 16
15, 584
* 16
9, 344
* 16
5, 504 Ответ: 0,97410 = 0,F9516
Пример: Перевести число 0,1875 из 10-тичной системы в 8-ричную/
0
,
1875
* 8
1, 5000
* 8
4, 0000 Ответ: 0,1875 = 0,148
Если требуемая точность перевода числа N составляет k знаков после запятой, то предельная абсолютная погрешность при этом = p -(k+1) / 2.
Пример. Переведем число 0,36 из десятичной системы в двоичную, восьмеричную и шестнадцатеричную:
Арифметические операции в позиционных системах счисления
Сложение и вычитание эффективно выполнять в исходной системе счисления. Способ с переводом каждого числа в 10-тичную систему, выполнении действия в ней, а затем обратного преобразования существенно длиннее и зачастую приводит к ошибкам.
При сложении чисел в произвольной позиционной системе счисления с основанием р в каждом разряде производится сложение цифр слагаемых и цифры, переносимой из соседнего младшего разряда, если она имеется. При этом необходимо учитывать, что если при сложении чисел получилось число, большее или равное р, то представляем его в виде p*k + b, где k N – количество единиц переноса в следующий разряд 0 ≤ b ≤ p - 1
При сложении и вычитании двоичных чисел достаточно знать правила сложения двоичных цифр (таблицу сложения двоичной системы):
0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10
Примеры:
1 1 1
1) 110012
+ 11012
1001102
1 +1 = 2 = 1*2 + 0 («1» переносится в старший разряд)
0 +0 + 1 = 1
0 + 1 = 1
1 + 1 = 2 = 1*2 + 0 («1» переносится в старший разряд)
1 + 0 + 1 = 2 = 1*2 + 0 («1» переносится в старший разряд)
1 1 1
2) 76158
+ 3468
101638
5 +6 = 11 = 1*8 + 3 («1» переносится в старший разряд)
4 +1 + 1 = 6
6 + 3 = 9 = 1*8 + 1 («1» переносится в старший разряд)
7 + 0 + 1 = 8 = 1*8 + 0 («1» переносится в старший разряд)
1 1 1
3) 9FA16
+ E83616
F23016
10 +6 = 16 = 1*16 + 0 («1» переносится в старший разряд)
15 +3 + 1 = 19 = 1*16 + 3 («1» переносится в старший разряд)
9 + 8 + 1 = 18 = 1*16 + 2 («1» переносится в старший разряд)
0 + 14 + 1 = 15 = F
При вычитании чисел в р цифры вычитаются поразрядно. Если в рассматриваемом разряде необходимо от меньшего числа отнять большее, то занимается единица в следующем (старшем разряде). Занимаемая единица равна р единицам этого разряда (аналогично, когда занимаем единицу в десятичной системе счисления, то занимаемая единица равна 10.) Для двоичной системы счисления занимаемая единица = 210 = 102, для восьмеричной системы счисления занимаемая единица = 810 = 108, для шестнадцатеричной системы счисления занимаемая единица = 1610 = 1016.
Примеры: Точками в примерах с вычитанием отмечены разряды, из которых приходилось занимать.
2
1) 110102
11012
11012
2 – 1 = 1 (так как 0 < 1 пришлось занять из соседнего разряда)
0 – 0 = 0
2 – 1 = 1 (так как 0 < 1 пришлось занять из соседнего разряда)
В этом разряде остался 0, вновь пришлось занимать из старшего разряда: 2 – 1 = 1
В этом разряде остался 0
8
2) 76158
3468
72478
8 + 5 – 6 = 7 (так как 5 < 6 пришлось занять из соседнего разряда)
8 + 0 – 4 = 4 (после того, как заняли, в этом разряде остался 0)
5 – 3 = 2
7 – 0 = 7
16
3) E83616
9FA 16
DE3C16
16 + 6 – 10 = 12 = C16 (заняли из соседнего разряда)
16 + 2 – 15 = 3 (В этом разряде осталась 2, заняли из соседнего разряда)
16 + 7 – 9 = 14 = Е16
В этом разряде осталась D16
Иногда при вычитании необходимо занимать единицу через несколько разрядов, так как в соседнем или в нескольких соседних разрядах подряд стоят нули. В этом случае надо иметь в виду, что в этих разрядах на месте нулей после того, как заняли, будет располагаться «последняя цифра» той системы счисления, в которой записано уменьшаемое, т.е. цифра 1 для двоичной, цифра 7 для восьмеричной и цифра F для 16-ричной систем счисления.
Примеры:
1 1 2 7 7 8 F F 16
10002 10008 100016
112 118 AD16
1012 7678 F5316
Замечание. При выполнении арифметических операций с числами, которые находятся в разных системах счисления, необходимо перевести числа в одну и ту же систему и только потом выполнять действие. Конечно, можно в качестве такой системой счисления выбрать десятичную систему, однако, в случае, когда в числах много цифр, такой перевод будет трудоемким. Например, при переводе числа 123456789ABCDEF16 в десятичную систему придется вычислять 16 в степенях вплоть до четырнадцатой.
Умножение в позиционной системе счисления является достаточно сложным действием, поэтому более надежно умножение выполнять в 10-тичной системе с предварительным и завершающим переводом в исходную систему. Однако умножение на 2 можно представить в виде суммы. Например: 2*Т, где Т = 3158
2
* 3158
= 3158
3158
6328
При умножении на 710, 810, 910 можно воспользоваться переводом в десятичную систему. Но так как десятичное число 8 равно 8-ричному числу 10 (810 = 108), тогда умножение можно заменить умножением на десять с последующим вычитанием или сложением.
Примеры:
1) 810 * 62718 = 108 * 62718 = 627108
2) 710 * 62718= (810 – 110) * 62718 = (108 – 18) * 62718 =
= 627108
62718
544178
3) 910 * 62718= (810 + 110) * 62718 = (108 + 18) * 62718 =
= 627108
62718
544178
Замечание. Если второй сомножитель представлен в двоичной или шестнадцатеричной системе, его предварительно необходимо перевести в восьмеричную систему счисления, например: 710 * А3С516.
Сначала переведите А3С516 в восьмеричную систему, используя метод тетрад и триад, а затем выполните умножение.
А3С516 = 1010 0011 1100 01012 = 001 010 001 111 000 1012 = 1217058.
710 * 1217058 = (810 – 110) * 1217058 = (108 – 18) * 1217058 =
= 12170508
1217058
10751438
При умножении на 1510, 1610, 1710 можно воспользоваться тем фактом, десятичное число 16 равно 16-ричному числу 10 (1610 = 1016). В этом случае, как и в предыдущем, умножение можно заменить умножением на десять с последующим вычитанием или сложением.
Примеры:
1) 1610 * A6D516 = 1016 * A6D516 = A6D5016
2) 1510 * A6D516= (1610 – 110) * A6D516 = (1016 – 116) * A6D516=
= A6D5016
A6D516
9C67B16
3) 1710 * A6D516= (1610 + 110) * A6D516 = (1016 + 116) * A6D516=
= A6D5016
= A6D5016
A6D516
B142516
Замечание. Если второй сомножитель представлен в двоичной или восьмеричной системе, его предварительно необходимо перевести в шестнадцатеричную систему счисления, например: 1710 * 71548.
Сначала переведите 71548 в шестнадцатеричную систему, используя метод тетрад и триад, а затем выполните умножение.
71548 = 111 001 101 1002 = 1110 0110 11002 = E6C16.
1710 * E6C16 = (1610 + 110) * E6C16 = (1016 + 116) * E6C16=
= E6C016
E6C16
F52C16
Примеры выполнения задания 1.
Пример 1. Найти шестнадцатеричное решение уравнения
X = M + 7*L - T + P ,
где 7 - десятичное число,
M - десятичное число M=3256 ,
P - шестнадцатеричное число P=A01 ,
L - шестнадцатеричное число L= FAC ,
T - восьмеричное число T= 7665.
Решение:
Преобразуем к виду
X = (M + 7 *L + P) – T
