
ОТМП_1у-2011.ppt
- Количество слайдов: 39
Ч 1. Лекция 1 Системы счисления Лектор: Люличева И. А. 1
Рассматриваются вопросы История появления систем. Основные понятия n Что такое двоичная система и бинарные коды? n Цифровое представление двоичной системы. Дополнительный код. n Что такое шестнадцатеричная система? n Применение в 16 -ричной системы в цифровой технике. n Способы записи. n Перевод чисел из одной системы счисления в другую. n 2
Краткая история систем n Чтобы производить действия над числами, сами числа надо как-то обозначать. Когда люди осознали, что чисел много, они стали изобретать способы записи чисел. Способ записи чисел называют нумерацией или, по-другому, системой счисления. Вы наверняка слышали, например, о римской нумерации. Она и сейчас часто используется для обозначения исторических дат (мы пишем, к примеру, XX век) или важных событий (скажем, XXV Олимпийские игры). 3
Краткая история систем исчисления n Мы пользуемся позиционной системой счисления. Рассмотрим три числа: 298, 829 и 982, в их записи участвуют одни и те же цифры. Различаются же записи расположением цифр, иными словами, тем, какую позицию занимает та или иная цифра. Отсюда и пошло название такой нумерации - позиционная. 4
2 и 16 -ричная системы счисления n Более распространенной для представления чисел в памяти компьютера является двоичная система исчисления. Для изображения чисел в этой системе необходимо две цифры: 0 и 1, то есть достаточно двух стойких состояний физических элементов. Эта система близка к оптимальной по экономичности. Поскольку 23=8, а 24=16 , то каждых три двоичных разряда числа образовывают один восьмиричный, а каждых четыре двоичных разряда - один шестнадцатиричный. Поэтому для сокращения записи адресов и содержимого оперативной памяти компьютера используют шестнадцатиричную и восьмиричную системы исчисления. 5
Цифровое представление двоичной системы n Двоичная система — это универсальный способ представления данных, поскольку простейшим устройством, которое можно реализовать на одном транзисторе, является электронный ключ. Такие ключи, имеющие только два состояния, очень малы; они способны очень быстро изменять свое состояние и потребляют незначительный ток. Более того, поскольку требуется различать только два состояния, очевидно, что двоичное представление менее подвержено воздействию помех. 6
Что такое бинарные коды? n n n Термин «бинарный» по смыслу - состоящий из двух частей, компонентов. Таким образом бинарные коды это коды которые состоят только из двух символьных состояний например черный или белый, светлый или темный, проводник или изолятор. Бинарный код в цифровой технике это способ представления данных (чисел, слов и других) в виде комбинации двух знаков, которые можно обозначить как 0 и 1. Знаки или единицы БК называют битами. 7
Что такое бинарные коды? БК удобно использовать для накопления информации в каком-либо носителе в виде комбинации всего двух его физических состояний. Наибольшее число, которое может быть выражено двоичным кодом, зависит от количества используемых разрядов, т. е. от количества битов в комбинации, выражающей число. Например, для выражения числовых значений от 0 до 7 достаточно иметь 3 разрядный или 3 -битовый код: 8
Что такое бинарные коды? n . 9
Двоичное сложение n n n Сложение в 2 -ной системе счисления ПРОЩЕ чем в 10 -ной! Оно содержит всего 4 правила: 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 (or 10 B)
Двоичное сложение (пример без переноса): 1001101 B Все суммы во всех колонках + 0010010 B меньше 10! _______ 1011111 B n
Binary addition 11 1 <--- Биты переноса -> 11 1001001 1000111 + 0011001 + 0010110 _______ ____ 1100010 1011101 Процесс привычный но утомительный. Особенно при сложении 32 -64 bits numbers!
Что такое бинарные коды? n n n Переходя от чисел к физическим величинам, сформулируем вышеприведенное утверждение в более общем виде: наибольшее количество значений m какой-либо величины (температуры, напряжения, тока и др. ), которое может быть выражено двоичным кодом, зависит от числа используемых разрядов n как m=2 n. Если n=3, как в рассмотренном примере, то получим 8 значений, включая ведущий 0. 13
Что такое бинарные коды? Двоичный код является многошаговым кодом. Это означает, что при переходе с одного положения (значения) в другое могут изменятся несколько бит одновременно. Например число 3 в двоичном коде = 011. Число же 4 в двоичном коде = 100. Соответственно при переходе от 3 к 4 меняют свое состояние на противоположное все 3 бита одновременно. 14
Что такое бинарные коды? n n Это при считывании информации может привести к тому, что при переходе от одного числа к другому кратковременно будет выдана неверная информация. Так при переходе от числа 3 к числу 4 очень вероятна кратковременная выдача числа 7 когда, например, старший бит во время перехода поменял свое значение немного раньше чем остальные. Чтобы избежать этого, применяется так называемый одношаговый код, Грей-код. 15
Код Грея Грей-код является так называемым одношаговым кодом, т. е. при переходе от одного числа к другому всегда меняется лишь какой-то один из всех бит. Погрешность при считывании информации с механического кодового диска при переходе от одного числа к другому приведет лишь к тому, что переход от одного положения к другом будет лишь несколько смещен по времени, однако выдача совершенно неверного значения углового положения при переходе от одного положения к другому полностью исключается. 16
Код Грея n Преимуществом Грей-кода является также его способность зеркального отображения информации. Так инвертируя старший бит можно простым образом менять направление счета и таким образом подбирать к фактическому (физическому) направлению вращения оси. Изменение направления счета таким образом может легко изменяться управляя так называемым входом " Complement ". Выдаваемое значение может таким образом быть возврастающим или спадающим при одном и том же физическом направлении вращения оси. 17
Код Грея n Поскольку информация выраженая в Грей-коде имеет чисто кодированный характер не несущей реальной числовой информации он перед дальнейшей обработкой должен сперва быть преобразован в стандартный бинарный код. Осуществляется это при помощи преобразователя кода (декодера Грей-Бинар) который легко реализируется с помощью цепи из логических элементов «исключающее или» ( XOR ) как програмным так и аппаратным способом. 18
Цифровое представление двоичной системы n Два состояния бита обычно называются логическим нулем (лог. 0) алогической единицей (лог. 1) или просто 0 и 1. Один бит может быть представлен двумя состояниями любой физической величины, например напряжения или силы электрического тока, освещенности, давления воздуха. В большинстве микроконтроллеров состоянию лог. 0 соответствует напряжение 0 В (или «земля» ), а состоянию лог. 1 — напряжение +3… 5 В, хотя это правило и не универсально. Например, в последовательном порту RS-232 вашего ПК для индикации состояния лог. 0 используется напряжение +12 В, а для индикации состояния лог. 1 — напряжение -12 В. 19
Цифровое представление двоичной системы n n Микропроцессоры и микроконтроллеры очень тесно связаны друг с другом, поэтому мы попеременно будем использовать оба термина. Итак, один бит может представлять только два состояния. Более сложные элементы можно выразить с помощью комбинаций битов. Например, обычные алфавитноцифровые символы можно представить с помощью двоичных разрядов. Таким образом, ASCII-представление строки “Microcontroller” будет иметь вид: 1001101001 1100011 1110010 1101111 1100011 1101110100 1110010 1101111 1101100101 1110010. 20
Преобразовние из 10 -ной системы в 2 -ную
Пример 1
Вычитание и коды отрицательных чисел в 2 -ной системе n n При работе с десятичными числами для обозначения положительных и отрицательных чисел используются знаки «+» и «—» соответственно. В системе же с двумя состояниями мы можем оперировать только единицами и нулями. Отрицательное значение получается в результате заема в старший разряд числа. Так что мы можем использовать этот разряд в качестве знакового бита (sign bit), причем 0 будет эквивалентен знаку «+» , а 1 — знаку «—» .
Дополнительный двоичный код – что это? n n Преимущество такого представления заключается в том, что при любых арифметических операциях с ним можно обращаться так же, как и с обычным битом. Другими словами, А - В = А + (-В). Более того, если числа будут записаны в дополнительном коде, результаты всех последующих арифметических операций также будут в дополнительном коде. 24
Дополнительный двоичный код n n Причем, простота инвертирования (0 -> 1, 1 ->0) делает этот метод очень привлекательным. 1000101 -> 0111010; + 1 = -0111011. И опять же отрицательные числа следует оставлять в дополнительном коде. Обратите внимание, что операция преобразования в дополнительный код является обратимой, т. е. дополнительный код <^> прямой код. 25
Прямой и дополнительный код n n n n 001 111 010 110 011 101 100 100 101 011 110 010 111 001
Шестнадцатеричная система n n Шестнадцатеричная система счисления (hexadecimal), — позиционная система счисления по целочисленному основанию 16. В качестве шестнадцатеричных цифр используются десятичные цифры от 0 до 9 и латинские буквы от A до F для обозначения цифр от 10 до 15.
Шестнадцатеричная система n n n Перед шестнадцатиричными числами, начинающимися с буквы, принято ставить нуль. 110=1 h, 210=2 h, 310=3 h, 410=4 h, 510=5 h, 610=6 h, 710=7 h, 810=8 h, 910=9 h, 1010=0 Ah, 1110=0 Bh, 1210=0 Ch, 1310=0 Dh, 1410=0 Eh, 1510=0 Fh. Каждый h-символ может быть представлен единственным сочетанием четырех бит (тетрадой). Таким образом, 1001 1110 В = 9 Eh.
Применение в цифровой технике n n Широко используется в низкоуровневом программировании и вообще в компьютерной документации, поскольку в современных компьютерах минимальной единицей памяти является 8 -битный байт, значения которого удобно записывать двумя шестнадцатеричными цифрами. Такое использование началось с системы IBM/360, где вся документация использовала шестнадцатеричную систему, в то время как в документации других компьютерных систем того времени использовали восьмеричную систему. В стандарте Юникода номер символа принято записывать в шестнадцатеричном виде, используя не менее 4 цифр (при необходимости — с ведущими нулями). 29
Способы записи n n n n В математике систему счисления принято писать в подстрочном знаке. Например, десятичное число 1443 можно записать как 144310 или как 5 A 316. В разных языках программирования для записи шестнадцатеричных чисел используют различный синтаксис: В Ада и VHDL такие числа указывают так: "16#5 A 3#". В Си и языках схожего синтаксиса, например, в Java, используют префикс "0 x". Например, "0 x 5 A 3". В различных ассемблерах часто используют букву "h", которую ставят после числа. Например, "5 A 3 h". При этом, если число начинается не с десятичной цифры, впереди ставится "0" (ноль): "0 FFh" (25510) 30
Способы записи n n n Другие ассемблеры (AT&T, Motorola), а также Паскаль и некоторые версии Бэйсика используют префикс "$". Например, "$5 A 3". Другие версии Бэйсика используют для указания шестнадцатеричных цифр сочетание "&h". Например, "&h 5 A 3". В Unix-подобных операционных системах (и многих языках программирования, имеющих корни в Unix/linux) непечатные символы при выводе/вводе кодируются как x. CC, где CC - 31 шестнадцатеричный код символа.
Перевод чисел из шестнадцатеричной системы в десятичную Для перевода шестнадцатеричного числа в десятичное необходимо это число представить в виде суммы произведений степеней основания шестнадцатеричной системы счисления (160 161 162) на соответствующие цифры (0 -15) в разрядах шестнадцатеричного числа. Так, цифра F, записанная в самом младшем разряде означает 15 в десятичной системе, F в следующем разряде означает 15*16 в первой степени в десятичной системе и т. д. 32
Перевод чисел из шестнадцатеричной системы в десятичную n n Например, требуется перевести шестнадцатеричное число 5 A 3 в десятичное. В соответствии с вышеуказанным правилом представим его в виде суммы степеней с основанием 16: 5 A 316=5· 162+10· 161+3· 160 =5· 256+10· 16+3· 1=1280+160+3= = 144310 33
Перевод чисел из шестнадцатеричной системы в десятичную n n Число 21016=10*162+15*161+0*160=10*256+24 0+0*1=2560+240+0=280010 BAD 16= 11*162+10*161+13*160= =11*256+10*16+13*1 =2816+160+13=298910 34
Перевод чисел из двоичной системы в шестнадцатеричную n n Необходимо разбить число, записанное в двоичной системе на группы по 4 разряда (тетрады) справа налево, заменив каждую группу одной шестнадцатиричной цифрой 1101 1010 1101 в двоичной 11 10 13 в десятичной В А D в шестнадцатеричной 35
Перевод чисел из двоичной системы в шестнадцатеричную n n n Еще пример (перевод без использования 10 ной системы): 101101000112=0101 1010 0011=5 A 316 При переводе каждой тетрады нужно просто пользоваться приведенной ниже таблицей двоично-16 -ричного соответствия. 36
Короткая таблица систем исчисления 10 2 8 16 0 0000 0 0 1 0001 1 1 2 0010 2 2 3 0011 3 3 4 0100 4 4 5 0101 5 5 6 0110 6 6 7 0111 7 7 8 1000 10 8 9 1001 11 9 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F 37
Длинная таблица систем счисления
Вопросы для самоконтроля n n n Какие системы счисления вам известны? Что такое двоичная система? Какие преимущества и недостатки двоичной системы? Что такое код Грея? Что такое дополнительный двоичный код? Что такое шестнадцатеричная система? Где применяется 16 -ричная система счисления? Какие преимущества 16 -ричной системы? Способ записи в програмировании? Перевести число 1000 Н в 10 -ную систему. Перевести 100111111100 В в 16 -ричную систему. 39