Урок 3 системы счисления позиционные системы счисления система счисления
Скачать 19.83 Kb.
|
урок 3 СИСТЕМЫ СЧИСЛЕНИЯПОЗИЦИОННЫЕ СИСТЕМЫ СЧИСЛЕНИЯСистема счисления - принятый способ записи чисел и сопоставления этим записям реальных значений. Все системы счисления можно разделить на два класса: позиционные и непозиционные. Для записи чисел в различных системах счисления используется некоторое количество отличных друг от друга знаков. Число таких знаков в позиционной системе счисления называется основанием системы счисления. Рассмотрим некоторые позиционные системы счисления и перечень знаков (цифр), из которых образуются в них числа.
В позиционной системе счисления число может быть представлено в виде суммы произведений коэффициентов на степени основания системы счисления: AnAn-1An-2…A1A0 , A-1A-2…=An*+An-1*Bn-1+…+ A1*B1+A0*B0+ A-1*B-1+A-2*B-2+… (знак «точка» отделяет целую часть числа от дробной; знак «звездочка» здесь и ниже используется для обозначения операции умножения). Таким образом, значение каждого знака в числе зависит от позиции, которую занимает знак в записи числа. Именно поэтому такие системы счисления называют позиционными. Примеры (десятичный индекс внизу указывает основание системы счисления): 23,43(10) = 2* 101+ 3* 100 + 4* 10-1 + 3* 10-2 (в данном примере знак «3» в одном случае означает число единиц, а в другом - число сотых долей единицы); 692(10)=6*102+9*101+2 («Шестьсот девяносто два» с формальной точки зрения представляется в виде «шесть умножить на десять в степени два, плюс девять умножить на десять в степени один, плюс два»), 1101(2)= 1*23+ 1*22 + 0*21 + 1*20; 112(3)= 1*32 + 1*31+ 2*3°; 341,5(8) = 3*82 + 4*81+ 1*80+ 5*8-1; AlF,4(16) = A*162+ 1*161 + F*160 + 4*16-1. При работе с компьютерами приходится параллельно использовать несколько позиционных систем счисления (чаще всего двоичную, десятичную и шестнадцатиричную), поэтому большое практическое значение имеют процедуры перевода чисел из одной системы счисления в другую. Заметим, что во всех приведенных, выше примерах результат является десятичным числом, и, таким образом, способ перевода чисел из любой позиционной системы счисления в десятичную уже продемонстрирован. Чтобы перевести целую часть числа из десятичной системы в систему с основанием В, необходимо разделить ее на В. Остаток даст младший разряд числа. Полученное при этом частное необходимо вновь разделить на В - остаток даст следующий разряд числа и т.д. Для перевода дробной части ее необходимо умножить на В. Целая часть полученного произведения будет первым (после запятой, отделяющей целую часть от дробной) знаком. Дробную же часть произведения необходимо вновь умножить на В. Целая часть полученного числа будет следующим знаком и т.д. Отметим, что кроме рассмотренных выше позиционных систем счисления существуют такие, в которых значение знака не зависит от того места, которое он занимает в числе. Такие системы счисления называются непозиционными. Наиболее известным примером непозиционной системы является римская. В этой системе используется 7 знаков (I, V, X, L, С, D, М), которые соответствуют следующим величинам: 1(1) V(5) X(10) L(50) С (100) D(500) М(10ОО) Примеры: III (три), LIX(пятьдесят девять), DLV (пятьсот пятьдесят пять). Недостатком непозиционных систем, из-за которых они представляют лишь исторический интерес, является отсутствие формальных правил записи чисел и, соответственно, арифметических действий над ними (хотя по традиции римскими числами часто пользуются при нумерации глав в книгах, веков в истории и др.). ДВОИЧНАЯ СИСТЕМА СЧИСЛЕНИЯОсобая значимость двоичной системы счисления в информатике определяется тем, что внутреннее представление любой информации в компьютере является двоичным, т.е. описываемым наборами только из двух знаков (0 и 1). Конкретизируем описанный выше способ в случае перевода чисел из десятичной системы в двоичную. Целая и дробная части переводятся порознь. Для перевода целой части (или просто целого) числа необходимо разделить ее на основание системы счисления и продолжать делить частные от деления до тех пор, пока частное не станет равным 0. Значения получившихся остатков, взятые в обратной последовательности, образуют искомое двоичное число. Например: Остаток 25:2 = 12 (1), 12:2 = 6 (0), 6:2 = 3 (0), 3:2=1 (1), 1:2 = 0 (1). Таким образом 25(10)=11001(2). Для перевода дробной части (или числа, у которого «0» целых) надо умножить ее на 2. Целая часть произведения будет первой цифрой числа в двоичной системе. Затем, отбрасывая у результата целую часть, вновь умножаем на 2 и т.д. Заметим, что конечная десятичная дробь при этом вполне может стать бесконечной (периодической) двоичной. Например: 0,73 * 2 = 1,46 (целая часть 1), 0,46 * 2 = 0,92 (целая часть 0), 0,92 * 2 = 1,84 (целая часть 1), 0,84 * 2 = 1,68 (целая часть 1) и т.д. В итоге 0,73(10) = 0,1011...(2). Над числами, записанными в любой системе счисления, можно производить различные арифметические операции. Так, для сложения и умножения двоичных чисел необходимо использовать табл. Таблицы сложения и умножения в двоичной системе
Заметим, что при двоичном сложении 1 + 1 возникает перенос единицы в старший разряд точь-в-точь как в десятичной арифметике: 1001 1001 + 11* 11 =1100 111 + 111 . = 10101 ВОСЬМЕРИЧНАЯ И ШЕСТНАДЦАТИРИЧНАЯ СИСТЕМЫ СЧИСЛЕНИЯС точки зрения изучения принципов представления и обработки информации в компьютере, обсуждаемые в этом пункте системы представляют большой интерес. Хотя компьютер «знает» только двоичную систему счисления, часто с целью уменьшения количества записываемых на бумаге или вводимых с клавиатуры компьютера знаков бывает удобнее пользоваться восьмеричными или шестнадцатеричными числами, тем более что, как будет показано далее, процедура взаимного перевода чисел из каждой из этих систем в двоичную очень проста - гораздо проще переводов между любой из этих трех систем и десятичной. Перевод чисел из десятичной системы счисления в восьмеричную производится (по аналогии с двоичной системой счисления) с помощью делений и умножений на 8. Например, переведем число 58,32(10): 58 : 8 = 7 (2 в остатке), 7 : 8 = 0 (7 в остатке). 0,32 – 8 = 2,56, 0,56 * 8 = 4,48, 0,48 – 8 = 3,84,... Таким образом, 58,32(10) = 72,243... (8) (из конечной дроби в одной системе может получиться бесконечная дробь в другой). Перевод чисел из десятичной системы счисления в шестнадцатеричную производится аналогично. С практической точки зрения представляет интерес процедура взаимного преобразования двоичных, восьмеричных и шестнадцатеричных чисел. Для перевода целого двоичного числа в восьмеричное необходимо разбить его справа налево на группы по 3 цифры (самая левая группа может содержать менее трех двоичных цифр), а затем каждой группе поставить в соответствие ее восьмеричный эквивалент. Например: 11011001 =011 011 001, т.е. 11011001(2) = 331(8) Заметим, что группу из трех двоичных цифр часто называют «двоичной триадой». Перевод целого двоичного числа в шестнадцатеричное производится путем разбиения данного числа на группы по 4 цифры - «двоичные тетрады»: 1100011011001 = 0001 1000 1101 1001, т.е. 1100011011001(2)= 18D9(16). Для перевода дробных частей двоичных чисел в восьмеричную или шестнадцатеричную системы аналогичное разбиение на триады или тетрады производится от точки вправо (с дополнением недостающих последних цифр нулями): 0,1100011101(2) = 0,110 001 110 100 = 0,6164(8), 0,1100011101(2) = 0,1100 0111 0100 =0,С74(16). Перевод восьмеричных (шестнадцатеричных) чисел в двоичные производится обратным путем - сопоставлением каждому знаку числа соответствующей тройки (четверки) двоичных цифр. Преобразования чисел из двоичной в восьмеричную и шестнадцатеричную системы и наоборот столь просты (по сравнению с операциями между этими тремя системами и привычной нам десятичной) потому, что числа 8 и 16 являются целыми степенями числа 2. Этой простотой и объясняется популярность восьмеричной и шестнадцатеричной систем в вычислительной технике и программировании. Арифметические действия с числами в восьмеричной и шестнадцатеричной системах счисления выполняются по аналогии с двоичной и десятичной системами. Для этого необходимо воспользоваться соответствующими таблицами. Для примера иллюстрирует сложение и умножение восьмеричных чисел. Рассмотрим еще один возможный способ перевода чисел из одной позиционной системы счисления в другую - метод вычитания степеней. В этом случае из числа последовательно вычитается максимально допустимая степень требуемого основания, умноженная на максимально возможный коэффициент, меньший основания; этот коэффициент и является значащей цифрой числа в новой системе. Например, число 114(10) 114 – 2 6 = 114 – 64 = 50, 50 – 2 5 = 50 – 32 = 18, 18 – 2 4 = 2, 2 – 2 1 = 0. Таким образом, 114(10) = 1110010(2). 114 – 1*82 = 114 – 64 = 50, 50 – 6*81 = 50 – 48 = 2, 2 – 2*80 = 2 – 2 = 0. Итак, 114(10)= 162(8). |