Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Позиционные системы счисления.
Перевод чисел является важным процессом функционирования вычислительных машин, так как с помощью его осуществляются арифметические действия, адресация файлов и т.п. операции. В вычислительных машинах применяются позиционные системы счисления. В позиционной системе счисления каждое число представляется последовательностью цифр, причем позиции каждой цифры xi присвоен определенный вес bi, где b – основание системы. Представление целого числа в виде степенного ряда описывается формулой:
Любое число в позиционной системе счисления представляется в виде разрядов. Крайняя слева цифра называется цифрой старшего разряда, крайняя справа – цифрой младшего разряда. Смешанное число в позиционной системе счисления представляется степенным рядом: , где xk–любое число из алфавита системы (набор символов) с основанием b; m и n–число разрядов соответственно для целой и дробной части числа. В современных компьютерах используются позиционные системы счисления с основаниями 2, 8, 10 и 16, которые соответственно называются двоичная, восьмеричная, десятичная и шестнадцатеричная системы счисления. Представление чисел в этих системах показано в табл.1. Таблица 1.
Для представления чисел в различных системах счисления необходимо вычислять степени двойки, восьмерки и шестнадцати (табл.2). Таблица 2.
Задача. Представить число 1997 в позиционной системе счисления с основанием 10 (десятичной системе) 1997 = 1х103 + 9× 102 +9× 101 +7× 100. Представить число 1997 в позиционной системе счисления с основанием 2 (двоичной системе) 1997 = 1× 210 +1× 29 +1× 28 +1× 27 +1× 26 +0× 25 +0× 24 +1× 23 +1× 22 +0× 21 +1× 20 = 11111001101. Представить число 1997 в позиционной системе счисления с основанием 8 (восьмеричной системе) 1997 = 3× 83 +7× 82 +1× 81 +5× 80 = 3715. Представить число 1997 в позиционной системе счисления с основанием 16 (шестнадцатеричной системе) 1997 = 7× 162 +12× 161 +13× 160 = 7CD.
Задача. Представить в двоичной форме числа 48, 57, 511, 121. Разложим числа по степенному ряду двойки: Решение: 48 = 32+16=1х25 + 1х24 + 0х23 + 0х22 + 0х21 + 0х20=1100002 57 = 32+ 16+8+1 =1х25 + 1х24+ 1х23 + 0х22 + 0х21 + 1х20 = 1110012 511=256+128+64+32+16+8+4+2+1 = 1х28+1х27 +1х26+1х25+1х24 +1х23+ +1х22 +1х21 +1х20 = 1111111112 121 = 64+32+16+8+4+2+1 = 1х26+1х2 +1х24+ 1х23 + 0х22 + 0х21 + 1х20 = =1111012
Задача. Представить в восьмеричной форме числа 48, 57, 511, 121. Разложим числа по степенному ряду восьмерки: 48 = 6х81 + 0х20 = 608 57 = 56 + 1 = 7х81 + 1х20 = 718 511 = 448 + 56 + 7 = 7х81 + 7х81 + 7х80 = 7778 121 = 64 + 56 + 1 = 1х81 + 7х81 + 1х80 = 1718
Задача. Представить в шестнадцатеричной форме числа 48, 57, 511, 121. Разложим числа по степенному ряду шестнадцати: 48 = 3х161 + 0х160 = 3016 57 = 48 + 9 = 3х161 + 9х160 = 39 16 511 = 256 + 240 + 15 = 1х162 + 15х161 + 15х160 = 1FF 16 121 = 112 + 9 = 7х161 + 9х160 = 19 16
Перевод чисел из одной системы представления в другую. Перевод чисел в десятичную систему счисления с помощью степенного ряда.
Задача. А1 = 100100.10012, А2 = 234.58, А3 = АВС.Е16 А1 = 100100.10012 = 25 +22 +2-1 +2-4 = 36 + 36.562510; Решение: А2 = 234.58 = 2х82 + 3х81 + 4х80 + 5х8-1 = 156 + 5/8 = 156.62510 А3 = АВС.Е16 =10х162 + 11х161 + 12х160 + 14х16-1 = 2748 + 16/16 = 2748.87510 . Для того, чтобы из восьмеричного счисления перевести число в двоичный код, необходимо каждую цифру этого числа представить триадой двоичных символов. Лишние нули в старших разрядах отбрасываются. Задача. Решение: 1234.7778 = 1 010 011 100.111 111 1112 12345678 = 1 010 011 100 101 110 1112 123456.0078 = 1 010 011 100 101 110.000 000 1112 Обратный перевод производиться следующим образом: каждая триада двоичных цифр заменяется восьмеричной цифрой. Для правильного перевода двоичные символы должны быть сгруппированы по три, начиная с младших разрядов. Если триада старших разрядах получается неполной, то ее выравнивают путем добавления нулей. Задача. Решение: Перевод из двоичной в восьмеричную систему счисления производится следующим образом: каждая триада двоичных цифр заменяется восьмеричной цифрой. Для правильного перевода двоичные символы должны быть сгруппированы по три, начиная с младших разрядов. Если триада старших разрядов получается неполной, то её выравнивают путем добавления нулей.
11001112 = 001 100 1112 = 1478 11.10012 = 011.100 1002 = 3.448 110.01112 = 110.011 1002 = 6.348 При переводах между двоичным и шестнадцатеричным счислениями используется группировка двоичных чисел по четверкам. При необходимости производится выравнивание группировки посредством добавления нулей. Задача. Решение: 1234.АВ7716 = 0001 0010 0011 0100.1010 1011 0111 01112; СЕ456716 = 1100 1110 0100 0101 0110 01112 0.1234 АА16 = 0.0001 0010 0011 0100 1010 10102 11001112 = 0011.10012 = 6716; 11.10012 = 0011.10012=3.916 110.01110012 = 0110.0111 00102 = 6.3216 При переходе из восьмеричного счисления в шестнадцатеричное счисление и обратно используется как вспомогательный двоичный код числа. Задача. Решение: 12345678=001 010 011 100 101 110 1112=0101 0011 1001 0111 01112= =5397716; 0.120348 = 0.001 010 000 011 1002 = 0.0010 1000 0011 10002 = 0.283816 120.348 = 001 010 000.011 1002 = 0101 0000.01112 = 50.716 1234.АВ7716 = 0001 0010 0011 0100.1010 1011 0111 01112 = =001 001 000 110 100.101 010 110 111 011 1002 = 11064.5267348 СЕ456716 = 1100 1110 0100 0101 0110 01112 = =110 011 100 100 010 101 100 1112 = 634425478 0.1234АА = 010 010 101 0102 = 0.044322528.
Перевод смешанного числа (целого и дробного) из десятичного счисления в другое счисление. Метод деления. Представление десятичного числа в других системах счисления может проводиться по схеме Горнера. Допустим, что у нас есть целое число D, представленное с помощью основания системы счисления b, т.е. Dn. Процесс представления выполняется в несколько этапов по следующим правилам: 3 Последовательно делить заданное число и получаемые целые части на новое основание счисления до тех пор, пока целая часть не станет меньше основания нового счисления. 4 Полученные остатки от деления, представленные символами нового счисления, записать в виде числа, начиная с последней целой части. Следовательно, на 1 этапе Dn = , где - целая часть от деления, а0 – остаток. Этот остаток является первым младшим разрядом в новой системе счисления. На втором этапе деления получаем выражение вида = и т.д. Задача. Представить по схеме Горнера десятичное число D10 = 147 в двоичном коде D2 = 10010011, в восьмеричном коде D8 =223, в шестнадцатеричном коде D16 = 93. Проверить полученные результаты на инженерном калькуляторе.
Рассмотрим преобразование десятичных чисел в двоичные, восьмеричные или шестнадцатеричные на основе процедуры схемы Горнера, представленной в виде таблицы:
Задача. Самостоятельно записать процедуру перевода D10 =156 в D8 и на основе анализа процедуры преобразования чисел из одной системы счисления (D10) в другую D2, D8, D16 разработать алгоритм этой процедуры.
Решение:
15610 = 100111008 = 2348 = 9С16
Алгоритм процедуры показан на рисунке:
Метод вычитания. 53 25 24 23 22 21 20 -32 ®25____ 1 1 0 1 0 1 21 -16 ®24____________ 5____________________________ -4 ®22________________________________ -1 ®20_________________________________________
Метод умножения (Перевод дробного числа из десятичного счисления в другое счисление). Правило: последовательно умножать данное число и получаемые дробные части произведений на основание новой системы счисления до тех пор, пока дробная часть произведения не станет равна нулю или не будет получено требуемое по условию количество разрядов; полученные целые части являются разрядами числа в новой системе и их необходимо представлять цифрами этой новой системы счисления. Пример. Для преобразования десятичной дроби в двоичный эквивалент используем операцию последовательного умножения на 2. Если первое произведение окажется меньше 1, то запишем в старший разряд двоичной дроби 0. Если первое произведение ³ 1, то старшей цифрой двоичной дроби является 1. Аналогично определим вторую цифру двоичной дроби, причем на два умножается только дробная часть произведении, полученная на предыдущем шаге.
Задача. 0, 6384× 2=1, 2768 ®1 0, 4535× 2=0, 907 ®0 0, 2768× 2=0, 5536 ®0 0, 907× 2=1, 8140 ®1 0, 5536× 2=1, 1072 ®1 0, 8140× 2=1, 6280 ®1 0, 1072× 2=0, 2144 ®0 2, 6280× 2=1, 256 ®1 0, 2144× 2=0, 04288®0 1, 256× 2=0, 512 ®0 0, 0× 2=0, 0 ®0 0, 512× 2=1, 024 ®1 (0, 6384)10 = (0, 101000)2 0, 024× 2=0, 048 ®0 0, 048× 2=0, 096 ®0 0, 096× 2=0, 182 ®0 (0, 4535)10 = (0, 011101000)2
Форматы чисел. |
Последнее изменение этой страницы: 2017-03-14; Просмотров: 962; Нарушение авторского права страницы