Кодирование информации. Кодирование информации - это представление сведений в той или иной стандартной форме. Одни и те же сведения могут быть представлены, закодированы в нескольких разных формах. С появлением компьютеров возникла необходимость кодирования (т.е. представления в формальном стандартном виде) всех видов информации, с которыми мы имеем дело. Но решать задачу кодирования информации человечество начало задолго до появления компьютеров. Грандиозные достижения человечества - письменность и арифметика - есть не что иное, как системы кодирования речи и числовой информации. Системы счисления. Системы счисления бывают позиционными и непозиционными. В позиционных с.с. значение цифры зависит от места в числе, а в непозиционных цифра всегда имеет одно и то же значение, независимо от места в числе. Римская система счисления (непозиционная). В римской системе счисления семь чисел обозначаются буквами: 1 - I, 5 - V, 10 - X, 50 - L, 100 - C, 500 - D, 1000 - M, а остальные записываются комбинациями этих букв. Правила записи римских чисел: 1) Подряд можно записать не более трех одинаковых цифр. 2) Перед старшей цифрой может стоять не более одной младшей. 3) Если младшая цифра стоит перед старшей – ее вычитают, если после старшей – ее прибавляют. Например, 2964 будет выглядеть так: MM CM LX IV 3746 так: MMM DCС XL VI Запишем римское число MCDLXV десятичными цифрами: Сначала определим количество тысяч: M – это тысяча. Теперь разберемся с сотнями: CD, младший разряд стоит перед старшим, значит, его вычитаем 500-100=400. Десятки: LX, младший разряд стоит после старшего, его прибавляем 50+10=60. В числе пять единиц. Итак, получилось число 1465. Десятичная позиционная система счисления. Десятичная система пришла из Индии, где она появилась не позднее VI в. н.э. В десятичной системе счисления всего десять цифр, но информацию несет не только цифра, но также и место, на котором она стоит. Особую роль играет число десять и его степени . Любое n-значное число в десятичной системе счисления N= anan-1...a0 n 1 можно записать: N an 10 an 1 10 ...a1 10 a0 Число 10, степени которого записаны в формуле выше, называют основанием десятичной системы счисления. n Позиционные системы счисления. Любая позиционная система счисления связана со своим основанием. Основание с.с. – это число, показывающее количество цифр в данной с.с. , а также то, во сколько раз каждый следующий разряд больше предыдущего. Основание 4-ричной с.с. – 4, значит, в ней четыре цифр (0, 1, 2, 3). А базу системы счисления составляют степени числа 4. В 8-ричной с.с.- 8 цифр (0..7), база системы - степени числа 8. Самая большая цифра в Р-ричной с.с. равна (Р-1). Так, в троичной с.с., самая большая цифра -2, в шестеричной – 5, в восьмеричной -7, в десятичной - 9 и т.д. ПРАВИЛО 1. Чтобы перевести число из десятичной с.с. в Р-ричную систему, нужно делить это число на Р, выписывая остатки до тех пор, пока в частном не получится 0, а затем записать все остатки в обратном порядке. Например, переведем 44102 с.с. Значит 4410=1011002 Переведем 102108 с.с. Значит 10210=1468 Переведем 87105 с.с. Значит 8710=3225 ПРАВИЛО 2. Чтобы перевести число из Р-ричной с.с. в десятичную, надо каждую цифру числа умножить на число Р (основание с.с.) в соответствующей степени (степень определяется количеством цифр, стоящих после данной). Например, 101011012 1 2 7 0 2 6 1 2 5 0 2 4 1 2 3 1 2 2 0 21 1 2 0 =128+32+8+4+1=17310 1468 1 82 4 81 6 80 =64+32+6=10210 10057 1 73 0 7 2 0 71 5 7 0 =343+5=34810 Двоичная система счисления. Вопреки распространенному заблуждению, двоичная система счисления была придумана не инженерами конструкторами ЭВМ, а математиками и философами задолго до появления компьютеров, ещё в XVII - XIX вв. Великий немецкий ученый Лейбниц считал: “Вычисление с помощью двоек... является для науки основным и порождает новые открытия... При сведении чисел к простейшим началам, каковы 0 и 1, везде появляется чудесный порядок”. Позже двоичная система счисления была забыта и только в 1936-1938 гг. Американский инженер и математик Клод Шеннон нашел замечательные применения двоичной системы при кодировании электронных схем. Разберемся с двоичной системой счисления на примерах. Как узнать чему равно двоичное число N=101110101. Составим таблицу из первых девяти степеней двойки и поместим в неё цифры нашего числа: Десятичная позиционная система счисления. Десятичная система пришла из Индии, где она появилась не позднее VI в. н.э. В десятичной системе счисления всего десять цифр, но информацию несет не только цифра, но также и место, на котором она стоит. Особую роль играет число десять и его степени . Любое n-значное число в десятичной системе счисления N anan= 1...a0 n 1 можно записать: N an 10 an 1 10 ...a1 10 a0 Число 10, степени которого записаны в формуле выше, называют основанием десятичной системы счисления. n Двоичная и родственные с ней системы счисления. Особую роль в информатике играет двоичная с.с., т.к. ЭВМ понимает только два состояния: высокое напряжение и низкое напряжение (одно из них соответствует 0, другое 1). Основание двоичной с.с. – 2, значит в ней только две цифры: 0 и 1, а базу образуют степени двойки. Но для человека запись двоичных чисел слишком громоздка и неудобочитаема, поэтому на помощь проходят родственные с двоичной восьмеричная и шестнадцатеричная с.с. Восьмеричная система счисления. Основание системы счисления 8, значит в ней 8 различных цифр, и каждый следующий разряд в восемь раз больше предыдущего. Цифры восьмеричной системы счисления: 0,1, 2, 3, 4, 5, 6, 7. Для того, чтобы перевести число из 10 с.с. в 8 с.с на до выполнять последовательное деление с остатком на 8, до тех пор, пока очередное частное не станет равно 0, затем снизу вверх выписываются все получившиеся остатки: Значит, 19810=3068. Для того, чтобы перевести число из 8 с.с. в 10 с.с. надо каждую цифру этого числа умножить на соответствующую степень 8, а полученные произведения сложить. 12348 1 83 2 82 3 81 4 80 66810 . Упражнения. 1. Переведите в восьмеричную систему счисления числа 8,123, 1500, 64, 80. Какие из этих чисел было переводить легче всего? Почему? 2. Переведите из восьмеричной системы счисления в десятичную систему счисления числа 10, 342, 1005, 1000. 3. Продолжите ряд в восьмеричной системе счисления: а) 33, 34, 35,.. б) 73, 74, 75,.. Связь восьмеричной и двоичной систем счисления. Три двоичные цифры называются триадой. Давайте составим табличку из двух столбиков, в одном столбике запишем все восьмеричные цифры, а во втором их двоичные значения в форме триад. Цифра 0 1 2 3 4 5 6 7 Триада 000 001 010 011 100 101 110 111 Правило 1. Для того чтобы перевести число из восьмеричной системы счисления в двоичную, надо каждую восьмеричную цифру заменить соответствующей триадой, первые незначащие нули можно отбросить. Например, 3048=011 000 1002=110001002 Правило 2. Для того чтобы перевести число из двоичной системы счисления в восьмеричную, надо разбить его на триады, начиная с конца (при необходимости первая триада дополняется нулями), затем каждую триаду нужно заменить соответствующей восьмеричной цифрой. Например, 10010101112=001 001 010 1112=11278. Упражнения. 1. Переведите из восьмеричной системы счисления в двоичную систему числа 3290, 1365, 745. 2. Переведите из двоичной системы счисления в восьмеричную числа 1010011, 1011, 10101010111. 3. Выполните перевод по следующей цепочке: а) 123108с.с. 2 с.с. 10с.с. б)435102 с.с. 8 с.с. 10 с.с. Шестнадцатеричная система счисления. Основание системы счисления 16, значит в ней 16 различных цифр, и каждый следующий разряд в шестнадцать раз отличается от предыдущего. Цифры восьмеричной системы счисления: 0, 1, 2, 3, 4, 5, 6, 7, 8 , 9, A, B, C, D, E, F. Переведем 268710 16 с.с. Значит, 268710=A7F16. Самостоятельно выполните проверку. Переведем число из 16 с.с в десятичную: B8 E16 11 16 8 16 14 16 2958 . 2 1 0 Упражнения. 1. Переведите в шестнадцатеричную систему счисления числа 256,1023, 3500, 16, 255. Какие из этих чисел было переводить легче всего? Почему? 2. Переведите из шестнадцатеричной системы счисления в десятичную систему счисления числа 10, 252, 2569, 100. 3. Продолжите ряд в шестнадцатеричной системе счисления: а) 47, 48, 49,.. б) 197, 198, 199, .. Связь шестнадцатеричной и двоичной систем счисления. Четыре двоичные цифры называются тетрадой. Давайте составим табличку из двух столбиков, в первом столбике запишем все шестнадцатеричные цифры, а во втором их двоичные значения в форме тетрад. Цифра Тетрада Цифра Тетрада 0 1 2 3 4 5 6 7 0000 0001 0010 0011 0100 0101 0110 0111 8 9 A B C D E F 1000 1001 1010 1011 1100 1101 1110 1111 Правило 1. Для того чтобы перевести число из шестнадцатеричной системы счисления в двоичную, надо каждую шестнадцатеричную цифру заменить соответствующей тетрадой, первые незначащие нули можно отбросить. Например, 7A0D16=0111 1010 0000 11012=1111010000011012 Правило 2. Для того чтобы перевести число из двоичной системы счисления в шестнадцатеричную, надо разбить его на тетрады, начиная с конца (при необходимости первая тетрада дополняется нулями), затем каждую тетраду нужно заменить соответствующей шестнадцатеричной цифрой. Например, 111110101012=0111 1101 01012=7D516. Упражнения. 1. Переведите из шестнадцатеричной системы счисления в двоичную систему числа 4A0F, 5EE, 1C6. 2. Переведите из двоичной системы счисления в шестнадцатеричную числа 110110, 10100011, 1011011, 10111101010111. 3. Переведите из 8 с.с. в 16 с.с. числа: 123, 100, 12. 4. Переведите из 16 с.с. в 8 с.с. числа А12, ВF1, 78AD. Рассмотрим еще два упражнения. Давайте выполним цепочку переводов: 123108с.с. 2 с.с. 16 с.с 10с.с. 1) Переведем десятичное число 123 в восьмеричную с.с. Надо выполнять деление на 8, выписывая остатки до тех пор, пока в частном не получится 0, а затем записать остатки в обратном порядке: Значит, 12310=1738 2) Переведем 1738 в 2 с.с. Заменим каждую цифру соответствующей триадой, а первые незначащие 0 отбросим: 1738=001 111 0112=11110112 3) Переведем число 11110112 в шестнадцатеричную с.с. Разобьем его на тетрады, начиная с конца, и заменим каждую тетраду шестнадцатеричной цифрой: 11110112=0111 10112=7B16 4) Переведем 7B16 в десятичную с.с., для этого умножим каждую цифру на соответствующую степень 16 7 B16 7 161 11 160 112 11 12310 . Результат совпал с исходным числом, значит, все переводы выполнены правильно. Давайте выполним цепочку переводов: 4351016 с.с. 2 с.с. 8 с.с. 10 с.с. 1) Переведем 43510 в шестнадцатеричную с.с. Для этого надо выполнять деление на 16, выписывая остатки; до тех пор, пока в частном не получится 0, а затем записать все остатки в обратном порядке: Значит, 43510=1B316 2) Переведем 1B316 в двоичную с.с. Заменим каждую цифру соответствующей тетрадой, первые незначащие 0 можно откинуть: 1B316=0001 1011 00112=1101100112. 3) Переведем 1101100112 в восьмеричную с.с. Разобьем число на триады, начиная с конца, первую при необходимости дополним нулями и заменим каждую триаду соответствующей восьмеричной цифрой: 110110011 2=110 110 0112=6638. 4) Переведем 6638 в десятичную с.с. Для этого каждую цифру числа умножим на соответствующую степень 8: 6638 6 8 2 6 81 3 8 0 384 48 3 43510 . Число совпало с исходным, значит, все переводы выполнены правильно. Сложение и вычитание в позиционных с.с. Числа в позиционных с.с. складывают поразрядно в столбик. Если при сложении двух разрядов (в р-ричной с.с.) получается число меньшее р, то его просто записывают. Если же полученное число больше или равно р, то записывают на сколько оно превышает р, а один разряд переносят. Найдем сумму 111100112+11010012=1010111002 +1 1 + 1 0 +1 1 1 1 1 1 0 1 0 1 +1 0 0 1 0 1 1 +1 1 0 0 1 1 0 Найдем сумму 13445+2315=21305 +1 1 +1 3 2 1 + 2 Найдем сумму 25728+34158=62078 + +1 2 3 6 +1 5 4 2 7 1 0 2 5 7 Найдем сумму 879A16+38E316=C07D16 +1 4 3 3 4 1 0 + +1 8 3 C +1 7 8 0 9 E 7 A 3 D Числа в позиционных с.с. вычитают поразрядно в столбик. Если при вычитании (в р-ричной с.с.) необходимо занять разряд, то мы занимаем Р. Если занимали через 0, то на его месте остается самая большая в этой с.с. цифра (Р-1). Найдем разность 101001002-10010112=10110012 Найдем разность 21038-15478=3348 1 - 0 1 1 1 0 0 0 0 1 0 1 1 1 0 0 0 1 0 Найдем разность 40126-3516=32216 4 3 1. 2. 3. 4. 5. 6. 7. 0 1 1 - 1 5 2 1 5 3 0 4 3 3 7 4 Найдем разность 210316-1A5E16=6A516 0 3 2 2 1 2 1 1 - 2 1 1 A 6 0 5 A 3 E 5 Упражнения по всей теме: Переведите числа из 10 с.с. в другие с.с. 123102 с.с.; 45105 с.с.; 99108 с.с. 3001016 с.с. Переведите числа в десятичную с.с. 3014 10 с.с; A0F1610 с.с; 273810 с.с. Выполните цепочку переводов: 1851016 с.с2 с.с8 с.с10 с.с Расположите числа в порядке возрастания: 3034; 768 ; B316 ; 10111012 ; 1435 Выполните действия. Ответ получите в заданной с.с.: а) найдите результат в двоичной с. с.: 10110012+4638=?2; B5216-2678=?2; б) найдите результат в восьмеричной с.с.: 3768+110011112=?8; 4568-C616=?8; в) найдите результат в шестнадцатеричной с. с: FB616+101110112=?16; E10316-6548=?16. У меня 100 братьев. Младшему 1000 лет, а старшему 1111 лет. Старший брат учится в 1001 классе. Может ли такое быть? Продолжите ряды в заданных системах счисления: а) 2 с.с. 100, 101, 110,…б) 8 с.с. 274, 275,… в) 16 с.с. 196, 197, 198,…