Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Тема 3. Системы счисления
Система счисления это способ представления чисел и соответствующие ему правила действий над числами.
Система счисления это знаковая система, в которой числа записываются по определенным правилам с помощью символов некоторого алфавита, называемых цифрами.
Известно множество способов представления чисел. В любом случае число изображается символом или группой символов (словом) некоторого алфавита. Будем называть такие символы цифрами. Для представления чисел используются непозиционные и позиционные системы счисления.
В непозиционных системах счисления величина, которую обозначает цифра, не зависит от положения в числе. При этом система может накладывать ограничения на положение цифр, например, чтобы они были расположены в порядке убывания.
Как только люди начали считать, у них появилась потребность в записи чисел. Первоначально количество предметов отображали равным количеством каких-либо значков (бирок): зарубок, черточек, точек. Такая система записи чисел называется единичной (унарной), так как любое число в ней образуется путем повторения одного знака, символизирующего единицу. Единичной системой счисления пользуются малыши, показывая на пальцах свой возраст, а счетные палочки используется для обучения учеников 1-го класса счету.
Древнеегипетская десятичная непозиционная система счисления. Примерно в третьем тысячелетии до нашей эры древние египтяне придумали свою числовую систему, в которой для обозначения ключевых чисел 1, 10, 100 и т.д. использовались специальные значки иероглифы. Все остальные числа составлялись из этих ключевых при помощи операции сложения. Система счисления Древнего Египта является десятичной, но непозиционной.
Римская система счисления. Примером непозиционной системы может служить римская система счисления. Она содержит знаки:
I (один палец) для числа 1,
V (раскрытая ладонь) для числа 5,
X (две сложенные ладони) для 10,
L 50,
C 100 (сentum сто),
D 500 (demimille половина тысячи),
M 1000 Мille тысяча
Чтобы записать число, римляне разлагали его на сумму тысяч, полутысяч, сотен, полусотен, десятков, пятков, единиц. Например, десятичное число 28 представляется следующим образом:
XXVIII=10+10+5+1+1+1 (три десятка, пяток, три единицы).
Для записи промежуточных чисел римляне использовали не только сложение, но и вычитание. При этом применялось следующее правило: каждый меньший знак, поставленный справа от большего, прибавляется к его значению, а каждый меньший знак, поставленный слева от большего, вычитается из него.
Например, IX обозначает 9, XI обозначает 11.
Десятичное число 99 имеет следующее представление:
XCIХ = -10+100-1+10.
Алфавитные системы счисления. Более совершенными непозиционными системами счисления были алфавитные системы. К числу таких систем счисления относились греческая, славянская, финикийская и другие. В них числа от 1 до 9, целые количества десятков (от 10 до 90) и целые количества сотен (от 100 до 900) обозначались буквами алфавита.
В алфавитной системе счисления Древней Греции числа 1, 2, ..., 9 обозначались первыми девятью буквами греческого алфавита, например и т.д. Для обозначения чисел 10, 20, ..., 90 применялись следующие 9 букв (0 и т.д.), а для обозначения чисел 100, 200, ..., 900 последние 9 букв ( и т.д.). Например, число 141 обозначалось .
Непозиционные системы счисления имеют ряд существенных недостатков:
1. Существует постоянная потребность введения новых знаков для записи больших чисел.
2. Невозможно представлять дробные и отрицательные числа.
3. Сложно выполнять арифметические операции, так как не существует алгоритмов их выполнения.
Основные достоинства любой позиционной системы счисления простота выполнения арифметических операций и ограниченное количество символов (цифр), необходимых для записи любых чисел.
Основанием позиционной системы счисления называется возводимое в степень целое число, которое равно количеству цифр, используемых для изображения чисел в данной системе счисления. Основание показывает также, во сколько раз изменяется количественное значение цифры при перемещении ее на соседнюю позицию.
В позиционных системах счисления количественный эквивалент (значение) цифры зависит от ее места (позиции) в записи числа.
В системе счисления с основанием q (q-ичная система счисления) единицами разрядов служат последовательные степени числа q, иначе говоря, q единиц какого-либо разряда образуют единицу следующего разряда. Для записи чисел в q-ичной системе счисления требуется q различных цифр (0,1,...,q-1).
В позиционной системе счисления любое вещественное число в развернутой форме может быть представлено в следующем виде:
Аq= ± (an-1qn-1+an-2qn-2+...+a0q0+a-1q-1+a-2q-2+...+a-mq-m),
Аq = ± aiqi,
здесь А само число, q основание системы счисления, ai цифры, принадлежащие алфавиту данной системы счисления, n число целых разрядов числа, m число дробных разрядов числа.
Свернутой формой записи числа называется запись в виде
A=an-1an-2...a1a0,a-1...a-m.
Именно такой формой записи чисел мы и пользуемся в повседневной жизни. Иначе свернутую форму записи называют естественной или цифровой.
Распространены системы счисления с основаниями:
Примеры.
А10=4·103+7·102+1·101+8·100+6·10-1+3·10-2
В двоичной системе счисления основание q=2. В этом случае формула для числа принимает вид:
А2= ± (an-12n-1+an-22n-2+...+a020+a-12-1+a-22-2+...+a-m2-m),
здесь аi возможные цифры (0, 1). Итак, двоичное число представляет собой цепочку из нулей и единиц. При этом оно имеет достаточно большое число разрядов. Быстрый рост числа разрядов самый существенный недостаток двоичной системы счисления. Записав двоичное число А2=1001,1 в развернутом виде и произведя вычисления, получим это число, выраженное в десятичной системе счисления:
А2=1·23+0·22+0·21+1·20+1·2-1 = 8+1+0,5 = 9,510.
Основание: q=8. Алфавит: 0, 1, 2, 3, 4, 5, 6, 7. Записав восьмеричное число А8=7764,1 в развернутом виде и произведя вычисления, получим это число, выраженное в десятичной системе счисления:
А8=7·83+7·82+6·81+4·80+1·8-1 = 3584 + 448 + 48 + 4 + 0,125 = 4084,12510
Основание: q=16. Алфавит: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
Здесь только десять цифр из шестнадцати имеют общепринятое обозначение 0,1, …9. Для записи остальных цифр (10, 11, 12, 13, 14 и 15) обычно используются первые пять букв латинского алфавита.
Таким образом, запись 3АF16 означает:
3АF16 = 3·162+10·161+15·160 = 768+160+15 = 94310.
3.3. Перевод чисел из одной системы счисления в другую
Можно сформулировать алгоритм перевода целых чисел из системы с основанием p в систему с основанием q:
1. Основание новой системы счисления выразить цифрами исходной системы счисления и все последующие действия производить в исходной системе счисления.
2. Последовательно выполнять деление данного числа и получаемых целых частных на основание новой системы счисления до тех пор, пока не получим частное, меньшее делителя.
3. Полученные остатки, являющиеся цифрами числа в новой системе счисления, привести в соответствие с алфавитом новой системы счисления.
4. Составить число в новой системе счисления, записывая его, начиная с последнего остатка.
Примеры.
173 |
8 |
|
5 |
21 |
8 |
5 |
2 |
Получаем: 17310=2558
173 |
16 |
13 |
10 |
(D) |
(A) |
Получаем: 17310=AD16.
11 |
2 |
||
1 |
5 |
2 |
|
1 |
2 |
2 |
|
0 |
1 |
Получаем: 1110=10112.
Можно сформулировать алгоритм перевода правильной дроби с основанием p в дробь с основанием q:
1. Основание новой системы счисления выразить цифрами исходной системы счисления и все последующие действия производить в исходной системе счисления.
2. Последовательно умножать данное число и получаемые дробные части произведений на основание новой системы до тех пор, пока дробная часть произведения не станет равной нулю или будет достигнута требуемая точность представления числа.
3. Полученные целые части произведений, являющиеся цифрами числа в новой системе счисления, привести в соответствие с алфавитом новой системы счисления.
4. Составить дробную часть числа в новой системе счисления, начиная с целой части первого произведения.
Примеры.
0, |
65625 × 8 |
5 |
25000 × 8 |
2 |
00000 |
Получаем: 0,6562510=0,528
0, |
65625 × 16 |
10 (А) |
50000 × 16 |
8 |
00000 |
Получаем: 0,6562510=0,А81
0, |
5625 × 2 |
1 |
1250 × 2 |
0 |
2500 × 2 |
0 |
5000 × 2 |
1 |
0000 |
Получаем: 0,562510=0,10012
0, |
7 ×2 |
1 |
4 ×2 |
0 |
8 ×2 |
1 |
6 ×2 |
1 |
2 |
. . .
Очевидно, что этот процесс может продолжаться бесконечно, давая все новые и новые знаки в изображении двоичного эквивалента числа 0,710. Так, за четыре шага мы получаем число 0,10112, а за семь шагов число 0,10110012, которое является более точным представлением числа 0,710 в двоичной системе счисления, и т.д. Такой бесконечный процесс обрывают на некотором шаге, когда считают, что получена требуемая точность представления числа.
Перевод произвольных чисел, т.е. чисел, содержащих целую и дробную части, осуществляется в два этапа. Отдельно переводится целая часть, отдельно дробная. В итоговой записи полученного числа целая часть отделяется от дробной запятой (точкой).
Примеры.
Переводим целую часть: |
Переводим дробную часть: |
17 2 1 8 2 0 4 2 0 2 2 0 1 |
0, 25 ×2 0 50 ×2 1 00 |
Получаем: 17,2510=1001,012
Переводим целую часть: |
Переводим дробную часть: |
124 8 4 15 8 7 1 |
0, 25 ×8 2 00 |
Получаем: 124,2510=174,28
3.3.4. Перевод из двоичной в восьмеричную и шестнадцатеричную системы
Для этого типа операций существует упрощенный алгоритм.
Для восьмеричной разбиваем число на триплеты, преобразуем триплеты по таблице
000 0 100 4
001 1 101 5
010 2 110 6
011 3 111 7
Для шестнадцатеричной разбиваем на квартеты, преобразуем по таблице
0000 0 0100 4 1000 8 1100 C
0001 1 0101 5 1001 9 1101 D
0010 2 0110 6 1010 A 1110 E
0011 3 0111 7 1011 B 1111 F
Пример. Преобразуем число 1011002:
восьмеричная 101 100 → 548;
шестнадцатеричная 0010 1100 → 2C16.
3.3.5. Перевод из восьмеричной и шестнадцатеричной систем в двоичную
Для этого типа операций существует упрощенный алгоритм-перевёртыш.
Для восьмеричной преобразуем по таблице в триплеты
0 000 4 100
1 001 5 101
2 010 6 110
3 011 7 111
Для шестнадцатеричной преобразуем по таблице в квартеты
0 0000 4 0100 8 1000 C 1100
1 0001 5 0101 9 1001 D 1101
2 0010 6 0110 A 1010 E 1110
3 0011 7 0111 B 1011 F 1111
Пример. Преобразуем:
548 → 101 100
2C16 → 0010 1100