Системы счисления П. 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: