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

advertisement
Системы счисления
П. 1.
П. 2.
П. 3.
П. 4.
П. 5.
П. 6.
План лекции
Понятие системы счисления. Виды систем счисления. ......................................................... 1
Основные определения позиционной системы счисления. ................................................... 1
Перевод чисел из одной системы счисления в другую. ......................................................... 2
Принцип 2-8-16........................................................................................................................... 5
Правильные систематические дроби. ....................................................................................... 6
Арифметические действия в различных системах счисления. .............................................. 7
П. 1. Понятие системы счисления. Виды систем счисления.
Система счисления – совокупность немногих названий и знаков, позволяющая записать любое число и дать ему имя.
Непозиционные системы счисления. Для записи натуральных чисел применяются различные системы счисления, которые можно разбить на две группы: непозиционные и позиционные. Древние египтяне применяли систему счисления, состоящую из набора символов, изображавших распространенные предметы быта. Совокупность этих символов обозначала число.
Расположение их в числе не имело значения, отсюда и появилось название непозиционная система. Итак, в непозиционных системах счисления значение каждого применяемого знака не зависит от его места в записи числа.
Из многочисленных непозиционных систем счисления некоторое значение сохранила в
настоящие время лишь римская нумерация. В этой системе счисления используются следующие знаки: I единица, V пять, X десять, L пятьдесят, C сто, D пятьсот, M тысяча. Знак для единицы означает один палец, для пяти раскрытую ладонь, для десяти две ладони. Знаки для ста и
тысячи первые буквы латинских слов centum сто и mille тысяча. Правила записи чисел в римской системе счисления таковы:
1.
если знак, изображающий меньшее число, стоит после знака изображающего
большее число, то производится сложение: VI=5+1=6, XV=10+5=15,
CCLV=100+100+50+5=255, MCLV=1000+100+50+5=1155;
2.
если знак, изображающий меньшее число, стоит перед знаком, изображающим
большее число, то производится вычитание: IV=5-1=4, IX=10-1=9, XL=5010=40, XC=100-10=90, MCDXXIX=1000+500-100+10+10+10-1=1429.
Непозиционной была система счисления и у древних греков. Они обозначали числа 1, 2,
3, 4, 5, 6, 7, 8, 9 первыми девятью буквами греческого алфавита(например α=1, β=2, γ=3 и т.д.).
Для обозначения чисел 10, 20, 30, 40, 50, 60, 70, 80, 90 применялись следующие девять букв , а
для обозначения чисел 100, 200, 300, 400, 500, 600, 700, 800, 900 последние девять букв.По записи было не возможно усмотреть, что число σ (т. е. 200) в сто раз больше числа β (т. е. 2). Некоторые элементы позиционной записи встречаются у древних греков при обозначении чисел,
больших 1000.
Культура древней Руси была тесно связана с византийской, т. е. греческой, культурой,
поэтому и принцип обозначения чисел был похож на греческий: числа обозначались с помощью
букв, над которыми ставился особый знак (титло). В славянском счислении применялись следующие названия для обозначения высших десятичных разрядов:10 тысяч назывались тьмой,
10 тем легионом, 10 легионов леордом.
Позиционные системы счисления. В позиционных системах счисления значение применяемых символов зависит от места, которое этот символ занимает в записи числа. Чаще всего
применяют
позиционные
системы
счисления
с
фиксированным
основанием.
В этих системах для записи натуральных чисел достаточно конечного множества знаков (цифр).
Чаще всего применяют привычную нам десятичную систему счисления, в которой g=10.
Перейдем к более подробному описанию позиционной системы счисления с основанием g.
П. 2. Основные определения позиционной системы счисления.
Определение Систематической записью натурального числа N по основанию g называется представление этого числа в виде суммы:
N = angn +…+ a1g+ a0 , (1)
где an,…, a1, a0 числа, принимающие значения 0, 1,…, g-1, причем an≠ 0.
Позиционная система счисления с основанием g называется g-ичной (двоичная, троичная и т. д.).
Для обозначения чисел 0, 1,…,g-1 в g-ичной системе счисления используют особые знаки, называемые цифрами. Замечательным открытием древнеиндийских математиков было изобретение нуля - особого знака, который должен был показать отсутствие единиц определенного
разряда.
Для g-ичной системы нужно g цифр (для обозначения цифр от 0 до g - 1). Если g < 10, то
применяют те же обозначения цифр, что и в десятичной системе счисления (только берут не все
цифры), а если g >10, то нужны особые обозначения для чисел от 10 до g - 1 (например, в двенадцатеричной системе счисления нужны еще две цифры, а в двадцатеричной - еще десять
цифр).
Вместо громоздкой записи
N = angn + …+a1g + a0
обычно пишут N=( an…a1 a0)g . Индекс g (справа внизу) указывает по какому основанию записано число. В десятичной системе счисления индекс 10 не ставится.
1.
Запись (47036)8 означает число
4 · 84 + 7 · 83 +0 · 82 + 3 · 8 + 6
2.
Запись
3 · 52 + 2 · 5 +0
коротко пишут в виде (320)5.
3.
Запись
6 · 107 + 7 · 106 + 3 · 105 + 8 · 104 + 1 · 103 + 9 · 102 + 0 · 10 + 4
коротко пишут в виде 67381904.
Наименьшее из чисел, которое можно взять за основание системы счисления, - это число
2. Соответствующая этому основанию система счисления, называется двоичной, - одна из очень
старых. Она встречалась, правда в весьма несовершенной форме, у некоторых племен Австралии и Полинезии. Удобство этой системы – в ее необычайной простоте. В двоичной системе
участвуют только две цифры 0 и 1, а число 2 представляет собой уже единицу следующего разряда. Информация, хранящаяся в компьютере, представлена в двоичной системе счисления.
Также очень распространенной является 16-ричная система счисления, ее цифры записываются
обычно так: 0, 1, …, 9, A, B, C, D, E, F. Здесь символ A используется для обозначения числа 10,
B – 11, C – 12, D – 13, ..., F – 15.
П. 3. Перевод чисел из одной системы счисления в другую.
Как перевести число, записанное в одной системе счисления, в какую- либо другую систему счисления? Достаточно научиться решать этот вопрос в случае, когда одна из систем
счисления десятичная.
Итак, разберем две задачи:
1. Пусть дана g-ичная запись числа N:
N = angn +…+ a0 g0.
Надо найти десятичную запись того же числа.
2. Дана десятичная запись числа N. Надо найти g-ичную запись того же числа.
Чтобы
решить
первую
задачу,
достаточно
подставить
в
запись
N = angn +…+ a0 g0 вместо an,…, a0 и g десятичные записи этих чисел и выполнить указанные
действия. Десятичная запись результата и будет искомым ответом.
Примеры:
1. Получим десятичную запись числа (4630)8.Запись (4630)8 перепишем в виде:
(4630)8 = 4 · 83 + 6 · 82 + 3 · 81 + 0 · 80 = 2456.
2. Получим десятичную запись для числа (A6B) 12, где A - новая цифра для 10 в двенадцатеричной системе счисления, а B - новая цифра для 11. Имеем:
(A6B)8 =10 · 122 + 6 · 121 + 11 · 120 = 1523.
Теперь рассмотрим вторую задачу.
g-ичная запись числа N находится следующим образом. Число N делим (в десятичной системе счисления) на g. Остаток от деления даст последнюю цифру g-ичной записи N. Частное N(1) снова делим на g и новый остаток даст предпоследнюю цифру gичной записи N. Продолжая этот процесс деления, найдем все цифры g-ичной записи.
При переводе целого десятичного числа в систему счисления с основанием g его необходимо последовательно делить на g до тех пор, пока целая часть от деления не станет
равной нулю. Число в системе с основанием g записывается как последовательность остатков от деления, записанных в обратном порядке.
Примеры:
1. Найдем двоичную запись числа 46. Расположим деление следующим образом:
Записывая остатки, начиная с последнего, получаем:
46=(101110)2.
Проверим ответ, переведя (101110)2 обратно в десятичную систему счисления:
(101110)2 = 1 · 25 + 0 · 24 + 1 · 23 + 1 · 22 + 1 · 21 +
+ 0 · 20 = 32 + 8 + 4 + 2 = 46
2. Найдем восьмеричную запись числа 691. Последоательно деля число 691 и получающиеся частные на 8,получаем:
Значит, 691=(1263)8.
3. Найдем двенадцатеричную запись числа 19510:
Для остатков 10 и 11 вводим новые цифры A и B. Тогда запись числа 19510 имеет
вид:
19510 = (B35A)12.
4. Переведем число(32014)5 в восьмеричную систему счисления. Сначала переведем
(32014)5 в десятичную систему счисления:
(32014)2 = 3 · 54 + 2 · 53 + 0 · 52 + 1 · 51 + 4 · 50 =
= 2134.
А теперь 2134 переведем в восьмеричную систему счисления:
Значит, (32014)5 = (4126)8.
Возможен и непосредственный перевод из p-ичной системы счисления в g-ичную.
Такой перевод не вызывает затруднения в случае, когда одно из чисел p, g является степенью другого, например g = pk.
П. 4. Принцип 2-8-16
Рассмотрим такой способ перевода на примере двоичной, восьмеричной и шестнадцатеричной системах счисления. Коротко он называется принцип 2-8-16.
Перевод восьмеричных и шестнадцатеричных чисел в двоичную очень прост: достаточно каждую цифру заменить эквивалентной ей двоичной триадой (тройкой цифр) или
тетрадой (четверкой цифр).
Для быстроты перевода используют специальные таблицы.
Таблица соответствия двоичных триад и восьмеричных чисел:
Двоичные триады 000 001 010 011 100 101 110 111
Восьмеричные цифры 1 2 3 4 5 6 7 8
Например, преобразуем восьмеричное число (47)8 в двоичную систему счисления:
Восьмеричные цифры
Двоичные триады
4
7
100 111
Получаем: (47)8 = (100111)2.
Таблица соответствия двоичных тетрад и шестнадцатеричных чисел:
ления:
2 c/c 16 c/c 2 c/c 16 c/c
0000 0 1000 8
0001 1 1001 9
0010 2 1010 A
0011 3 1011 B
0100 4 1100 C
0101 5 1101 D
0110 6 1110 E
0111 7 1111 F
Например, переведем шестнадцатеричное число (АВ)16 в двоичную систему счисШестнадцатеричные цифры A
B
Двоичные тетрады
1010 1011
В результате имеем: (АВ)16 = (10101011) (АВ)2.
Для перевода целого двоичного числа в восьмеричное его нужно разбить на группы по
три цифры, справа налево, а затем преобразовать каждую группу в восьмеричную цифру. Если в последней, левой, группе окажется меньше трех цифр, то необходимо ее дополнить слева нулями.
Переведем таким способом двоичное число (101001)2 в восьмеричное:
001 -> 1
101 -> 5
Таким образом (101001)2 = (51)8
Для перевода целого двоичного числа в шестнадцатеричное его нужно разбить на группы по четыре цифры (тетрады), начиная справа, и, если в последней левой группе окажется меньше четырех цифр, дополнить ее слева нулями.
Переведем таким способом двоичное число (101001)2 в шестнадцатеричное:
1001 -> 9
0010 -> 2
Таким образом (101001)2 = (29)16
П. 5. Правильные систематические дроби.
Мы с вами уже знаем, что всякое натуральное число представимо в виде:
N = an gn +…+ a1 g 1 + a0 g 0,
где an,…, a1, a0 - числа, принимающие значения 0, 1,…, g-1, причем an ≠ 0.
Оказывается, что существует аналогичное представление и для рациональных чисел:
an gn +…+ a1 g 1 + a0 g 0 + a- 1 g- 1 + … + a- m g- m,
где ai - цифры системы счисления с основанием g; n и m - число целых и дробных разрядов,
соответственно.
Примеры:
(1011, 1)2 = 1 · 23 + 0 · 22 + 1 · 21 + 1 · 20 + 1 · 2 - 1
(276, 52) 8 = 2 · 82 + 7 · 81 + 6 · 80 + 5 · 8 - 1 + 2 · 8 - 2
Для того чтобы выяснить, какие десятичные числа соответствуют этим записям, как и прежде
достаточно выполнить указанные действия.
Так, (1011, 1)2 = 23/2 = 11, 5 и (276, 52)8 = 12202/64 = 190, 65625
Вспомним что такое правильная дробь. Это такая дробь, числитель которой меньше знаменателя. В случае если дробь неправильная, то из нее можно выделить целую и дробную части, причем дробная часть будет правильной дробью.
При переводе правильной десятичной дроби в систему счисления с основанием g необходимо
сначала саму дробь, а затем дробные части всех последующих произведений последовательно
умножать на g, отделяя после каждого умножения целую часть произведения. Число в новой
системе счисления записывается как последовательность полученных целых частей произведения.
Умножение производится до тех пор, пока дробная часть не станет равной нулю. Это значит, что сделан точный перевод. В противном случае перевод осуществляется до заданной точности.
Пример: Переведем число 0, 35 из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную:
Ответ: 0, 35 = (0, 01011…)2 = (0, 263…)8 = (0,59…)16
При переводе рационального десятичного числа в другую систему счисления необходимо
перевести отдельно его целую и дробную части. Перевод осуществляется по ранее изученным
правилам.
Пример: Переведем число (110100, 11)2 в десятичную систему счисления, а затем проверим
результаты,
выполнив
обратный
перевод:
(110100, 11)2 = 1 · 25 + 1 · 24 + 0 · 23 + 1 · 22 +0 · 21 + 0 · 20 +
+ 1 · 2 - 1 + 1 · 2 - 2 = 211/4 = 52, 75
52 = (110100)2; 0, 75 = (0, 11)2 => 52, 75 = (110100, 11)2
Принцип 2-8-16.
Для перевода дробного двоичного числа (правильной дроби) в восьмеричное необходимо разбить его на триады слева направо и, если в последней, правой, группе окажется меньше трех
цифр, дополнить ее справа нулями. Далее необходимо триады заменить восьмеричными числами.
Например, преобразуем дробное двоичное число (0,110101)2 в восьмеричную систему счисления:
Двоичные триады 110 101
Восьмеричные цифры 6 5
(0, 110101)2 = (0, 65)8
Для перевода дробного двоичного числа (правильной дроби) в шестнадцатеричное необходимо
разбить его на тетрады слева направо и, если в последней правой группе окажется меньше четырех цифр, то необходимо дополнить ее справа нулями. Затем надо преобразовать каждую
группу в шестнадцатеричную цифру.
Например, преобразуем дробное двоичное число (0,110101)2 в шестнадцатеричную систему
счисления:
Двоичные тетрады
1101 0100
Шестнадцатеричные цифры D
4
(0,110101)2 = (0, D4)16
П. 6. Арифметические действия в различных системах счисления.
Рассмотрим основные арифметические операции: сложение, вычитание, умножение и деление. Правила выполнения этих операций в десятичной системе хорошо известны - это сложе-
ние, вычитание, умножение столбиком и деление углом. Эти правила применимы и ко всем
другим позиционным системам счисления. Только таблицами сложения и умножения надо
пользоваться особыми для каждой системы счисления.
Заметим, что роль «девятки» в двоичной системе выполняет цифра 1, в троичной – 2 и т.д.,
в g-ичной – цифра g - 1.
Рассмотрим сложение. Как в десятичной, так и в любой другой системе мы складываем
сначала единицы, затем переходим к следующему разряду и т. д. До тех пор, пока не дойдем до
самого старшего из имеющихся разрядов. При этом необходимо помнить, что всякий раз, когда
при сложении в предыдущем разряде получается сумма большая, чем основание той системы
счисления, в которой ведется запись, или равная ему, надо сделать перенос в следующий разряд.
Составим таблицу сложения для двоичной системы счисления.
Имеем:
0+0=0
0+1=1
1+0=1
1 + 1 = 2. Но числа 2 в двоичной системе счисления не существует, поскольку не существует
такой цифры. Найдем двоичное число, равное десятичному числу 2:
2 =(10) 2
Иначе, исходя из выше сказанного, мы получили сумму равную основанию системы счисления
и должны сделать перенос в следующий разряд, т.е.
1 + 1 = 10.
Получаем следующую таблицу:
+
0
1
0
0
1
1
1
10
Таблицы сложения для остальных систем счисления составляются подобным образом.
Сложение в восьмеричной системе счисления:
+ 0 1 2 3 4 5 6 7
0 0 1 2 3 4 5 6 7
1 1 2 3 4 5 6 7 10
2 2 3 4 5 6 7 10 11
3 3 4 5 6 7 10 11 12
4 4 5 6 7 10 11 12 13
5 5 6 7 10 11 12 13 14
6 6 7 10 11 12 13 14 15
7 7 10 11 12 13 14 15 16
Пример:
Вычитание: a - b = c <=> a = b + c. Чтобы найти разность чисел a и b, пользуясь таблицей
сложения, необходимо найти в 1-ой строке (1-ом столбце) число b в соответствующем столбце
(строке) найти число a. Число с будет находиться в начале того столбца (строки), в котором находится a. Например, найдем разность 7 - 3 в восьмеричной системе счисления:
+
0
1
2
0
0
1
2
1
1
2
2
2
3
4
5
6
7
3
4
5
6
7
3
4
5
6
7
10
3
4
5
6
7
10
11
3
4
5
6
7
10
11
12
4
5
6
10
11
12
13
5
5
6
7
10
11
12
13
14
6
6
7
10
11
12
13
14
15
7
7
10
11
12
13
14
15
16
3
4
7
Пример: Найдем разность (311, 2)8 и (73, 6)8.
Особенность двоичного вычитания
Если двоичное вычитание вызывает у вас трудность, то его можно легко заменить сложением.
Делается
это
следующим
образом:
Для начала научимся инвертировать двоичные числа. Инвертировать двоичное число - это
значит каждый его ноль заменить единицей, а каждую единицу - нулем. Например, 000101101
<->
111010010.
Это
очень
просто,
не
так
ли?
Теперь, пусть необходимо найти разность (11001001, 01)2 - (111011, 11)2.
Как видим вычитаемое содержит слева от запятой меньше знаков, чем уменьшаемое. Это необходимо исправить. Добавим к вычитаемому с левого края необходимое количество нулей:
111011, 11 -> 00111011, 11. Теперь инвертируем это число. Получим: 11000100,00. Теперь сложим уменьшаемое с этим новым числом:
Крайнюю левую единицу убираем из результата и складываем с ним. Полученная в итоге
сумма и есть искомая разность:
Таким
образом,
(11001001,
01)2
(111011,
11)2
=
(10001101,
10)2.
Это только кажется сложным, на деле же это гораздо проще, чем обычное вычитание. Попробуйте решить этот пример обычным способом.
Перейдем к умножению. Основой для перемножения любых чисел служит таблица умножения, определяющая произведения чисел, меньших, чем основание счисления. Таблица умножения составляется аналогично таблице сложения. Умножение двоичных чисел выглядит весьма просто:
0·0=0
0·1=0
1·0=0
1·1=1
Составим таблицу умножения восьмеричных чисел:
0·0=0
0·1=0
.......
3·2=6
3·3=9
9 = (11)8 => (3)8 · (3)8 = (11)8
3 · 4 = 12
12 = (14)8 => (3)8 · (4)8 = (14)8
и т.д.
Получаем:
·
0
1
2
3
4
5
6
7
0
0
0
0
0
0
0
0
0
1
0
1
2
3
4
5
6
7
2
0
2
4
6
10
12
14
16
3
0
3
6
11
14
17
22
25
4
0
4
10
14
20
24
30
34
5
0
5
12
17
24
31
36
43
6
0
6
14
22
30
36
44
52
7
0
7
16
25
34
43
52
61
Здесь в каждой клетке стоит произведение чисел, представляющих собой номера строки и
столбца, на пересечении которых стоит эта клетка, причем все числа записаны здесь в восьмеричной
системе.
Примеры:
1. Найдем (1110011)2 · (110011)2:
2. Найдем (163)8 · (63)8:
3. Найдем (100011)2 : (1110)2:
4. Найдем (43)8 : (16)8:
Download