русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Системы счисления


Дата добавления: 2013-12-23; просмотров: 2556; Нарушение авторских прав


 

Для удобства последующего преобразования дискретный сигнал подвергается кодированию(о кодировании см. в разделе Кодирование сигнала). Большинство кодов основано на системах счисления, причем использующих позиционный принцип образования числа, при котором значение каждой цифры зависит от ее положения в числе.

Примером позиционной формы записи чисел является та, которой мы пользуемся (так называемая арабская форма чисел). Так, в числах 123 и 321 значения цифры 3, например, определяются ее положением в числе: в первом случае она обозначает три единицы (т.е. просто три), а во втором – три сотни (т.е. триста).

Тогда полное число получается по формуле:

где l – количество разрядов числа, уменьшенное на 1,

i – порядок разряда,

m – основание системы счисления,

ai – множитель, принимающий любые целочисленные значения от 0 до m-1, и соответствующий цифре i-го порядка числа.

Например, для десятичного (m = 10) числа 345 его полное значение рассчитывается по формуле:

3*102 + 4*101 + 5*100 = 345.

Римские числа являются примером полупозиционной системы образования числа: так, в числах IX и XI знак I обозначает в обоих случаях единицу (признак непозиционной системы), но, будучи расположенным слева от знака X (обозначающего десять), вычитается из десяти, а при расположении справа – прибавляется к десяти. В первом случае полное значение числа равно 9, во втором – 11.

 

В современной информатике используются в основном три системы счисления (все – позиционные): двоичная, шестнадцатеричная и десятичная.

 

Двоичная система счисления используется для кодирования дискретного сигнала, потребителем которого является вычислительная техника. Такое положение дел сложилось исторически, поскольку двоичный сигнал проще представлять на аппаратном уровне. В этой системе счисления для представления числа применяются два знака – 0 и 1.



 

Шестнадцатеричная система счисления используется для кодирования дискретного сигнала, потребителем которого является хорошо подготовленный пользователь – специалист в области информатики. В такой форме представляется содержимое любого файла, затребованное через интегрированные оболочки операционной системы, например, средствами Norton Commander в случае MS DOS. Используемые знаки для представления числа – десятичные цифры от 0 до 9 и буквы латинского алфавита – A, B, C, D, E, F.

 

Десятичная система счисления используется для кодирования дискретного сигнала, потребителем которого является так называемый конечный пользователь – неспециалист в области информатики (очевидно, что и любой человек может выступать в роли такого потребителя). Используемые знаки для представления числа – цифры от 0 до 9.

 

Соответствие между первыми несколькими натуральными числами всех трех систем счисления представлено в таблице перевода:

 

Десятичная система Двоичная система Шестнадцатеричная система
A
B
C
D
E
F

 

Для различения систем счисления, в которых представлены числа, в обозначение двоичных и шестнадцатеричных чисел вводят дополнительные реквизиты:

· для двоичных чисел – нижний индекс справа от числа в виде цифры 2 или букв В либо b (binary – двоичный), либо знак B или b справа от числа. Например, 1010002 = 101000b = 101000B = 101000B = 101000b;

· для шестнадцатеричных чисел - нижний индекс справа от числа в виде числа 16 или букв H либо h (hexadecimal – шестнадцатеричный), либо знак H или h справа от числа. Например, 3AB16 = 3ABH = 3ABh = 3ABH = 3ABh.

 

Для перевода чисел из одной системы счисления в другую существуют определенные правила. Они различаются в зависимости от формата числа – целое или правильная дробь. Для вещественных чисел используется комбинация правил перевода для целого числа и правильной дроби.

Правила перевода целых чисел

Результатом перевода целого числа всегда является целое число.

 

Перевод из десятичной системы счисления в двоичную и шестнадцатеричную:

а) исходное целое число делится на основание системы счисления, в которую переводится (на 2 - при переводе в двоичную систему счисления или на 16 - при переводе в шестнадцатеричную); получается частное и остаток;

б) если полученное частное меньше основания системы счисления, в которую выполняется перевод, процесс деления прекращается, переходят к шагу в). Иначе над частным выполняют действия, описанные в шаге а);

в) все полученные остатки и последнее частное преобразуются в соответствии с таблицей перевода в цифры той системы счисления, в которую выполняется перевод;

г) формируется результирующее число: его старший разряд – полученное последнее частное, каждый последующий младший разряд образуется из полученных остатков от деления, начиная с последнего и кончая первым. Таким образом, младший разряд полученного числа – первый остаток от деления, а старший – последнее частное.

 

Пример 1. Выполнить перевод числа 19 в двоичную систему счисления:

 

Таким образом, 19 = 100112.

 

Пример 2. Выполнить перевод числа 19 в шестнадцатеричную систему счисления:

Таким образом, 19 = 1316.

 

Пример 3. Выполнить перевод числа 123 в шестнадцатеричную систему счисления:

Здесь остаток 11 преобразован в шестнадцатеричную цифру В (см. таблицу) и после этого данная цифра вошла в число. Таким образом, 123 = 7В16.

Перевод из двоичной и шестнадцатеричной систем счисления в десятичную.

В этом случае рассчитывается полное значение числа по известной формуле.

 

Пример 4. Выполнить перевод числа 1316 в десятичную систему счисления. Имеем:

1316 = 1*161 + 3*160 = 16 + 3 = 19.

Таким образом, 1316 = 19.

 

Пример 5. Выполнить перевод числа 100112 в десятичную систему счисления. Имеем:

100112 = 1*24 + 0*23 + 0*22 + 1*21 + 1*20 = 16+0+0+2+1 = 19.

Таким образом, 100112 = 19.

 

Перевод из двоичной системы счисления в шестнадцатеричную:

а) исходное число разбивается на тетрады (т.е. 4 цифры), начиная с младших разрядов. Если количество цифр исходного двоичного числа не кратно 4, оно дополняется слева незначащими нулями до достижения кратности 4;

б) каждая тетрада заменятся соответствующей шестнадцатеричной цифрой в соответствии с таблицей.

 

Пример 6. Выполнить перевод числа 100112 в шестнадцатеричную систему счисления.

Поскольку в исходном двоичном числе количество цифр не кратно 4, дополняем его слева незначащими нулями до достижения кратности 4 числа цифр. Имеем:

 

В соответствии с таблицей 00112 = 112 = 316 и 00012 = 12 = 116.

Тогда 100112 = 1316.

 

Перевод из шестнадцатеричной системы счисления в двоичную:

а) каждая цифра исходного числа заменяется тетрадой двоичных цифр в соответствии с таблицей. Если в таблице двоичное число имеет менее 4 цифр, оно дополняется слева незначащими нулями до тетрады;

б) незначащие нули в результирующем числе отбрасываются.

 

Пример 7. Выполнить перевод числа 1316 в двоичную систему счисления.

По таблице имеем:

· 116 = 12 и после дополнения незначащими нулями двоичного числа 12 = 00012;

· 316 = 112 и после дополнения незначащими нулями двоичного числа 112 = 00112.

Тогда 1316 = 000100112. После удаления незначащих нулей имеем 1316 = 100112.

Правила перевода правильных дробей

 

Напомним, что правильная дробь имеет нулевую целую часть, т.е. у нее числитель меньше знаменателя.

Результат перевода правильной дроби всегда правильная дробь.

 

Перевод из десятичной системы счисления в двоичную и шестнадцатеричную:

а) исходная дробь умножается на основание системы счисления, в которую переводится (2 или 16);

б) в полученном произведении целая часть преобразуется в соответствии с таблицей в цифру нужной системы счисления и отбрасывается – она является старшей цифрой получаемой дроби;

в) оставшаяся дробная часть (это правильная дробь) вновь умножается на нужное основание системы счисления с последующей обработкой полученного произведения в соответствии с шагами а) и б);

г) процедура умножения продолжается до тех пор, пока ни будет получен нулевой результат в дробной части произведения или ни будет достигнуто требуемое количество цифр в результате;

д) формируется искомое число: последовательно отброшенные в шаге б) цифры составляют дробную часть результата, причем в порядке уменьшения старшинства.

 

Пример 1. Выполнить перевод числа 0,847 в двоичную систему счисления. Перевод выполнить до четырех значащих цифр после запятой.

Имеем:

Таким образом, 0,847 = 0,11012.

 

В данном примере процедура перевода прервана на четвертом шаге, поскольку получено требуемое число разрядов результата. Очевидно, это привело к потере ряда цифр.

 

Пример 2. Выполнить перевод числа 0,847 в шестнадцатеричную систему счисления. Перевод выполнить до трех значащих цифр.

Имеем:

В данном примере также процедура перевода прервана.

Таким образом, 0,847 = 0,D8D16.

 

Перевод из двоичной и шестнадцатеричной систем счисления в десятичную.

В этом случае рассчитывается полное значение числа по формуле, причем коэффициенты ai принимают десятичное значение в соответствии с таблицей.

 

Пример 3. Выполнить перевод из двоичной системы счисления в десятичную числа 0,11012.

Имеем:

0,11012 = 1*2-1 + 1*2-2 + 0*2-3 +1*2-4 = 0,5 + 0,25 + 0 + 0,0625 = 0,8125.

Расхождение полученного результата с исходным числом (см. пример 1) вызвано тем, что процедура перевода в двоичную дробь была прервана.

Таким образом, 0,11012 = 0,8125.

 

Пример 4. Выполнить перевод из шестнадцатеричной системы счисления в десятичную числа 0,D8D16.

Имеем:

0,D8D16 = 13*16-1 + 8*16-2 + 13*16-3 = 13*0,0625 + 8*0,003906 + 13* 0,000244 = 0,84692.

Расхождение полученного результата с исходным числом (см. пример 2) вызвано тем, что процедура перевода в шестнадцатеричную дробь была прервана.

Таким образом, 0,D8D16 = 0,84692.

 

Перевод из двоичной системы счисления в шестнадцатеричную:

а) исходная дробь делится на тетрады, начиная с позиции десятичной точки вправо. Если количество цифр дробной части исходного двоичного числа не кратно 4, оно дополняется справа незначащими нулями до достижения кратности 4;

б) каждая тетрада заменяется шестнадцатеричной цифрой в соответствии с таблицей.

 

Пример 5. Выполнить перевод из двоичной системы счисления в шестнадцатеричную числа 0,11012.

Имеем:

В соответствии с таблицей 11012 = D16. Тогда 0,11012 = 0,D16.

 

Пример 6. Выполнить перевод из двоичной системы счисления в шестнадцатеричную числа 0,00101012.

Поскольку количество цифр дробной части не кратно 4, добавим справа незначащий ноль:

 

В соответствии с таблицей 00102 = 102 = 216 и 10102 = A16.

Тогда 0,00101012 = 0,2A16.

 

Перевод из шестнадцатеричной системы счисления в двоичную:

а) каждая цифра исходной дроби заменяется тетрадой двоичных цифр в соответствии с таблицей;

б) незначащие нули отбрасываются.

 

Пример 7. Выполнить перевод из шестнадцатеричной системы счисления в двоичную числа 0,2А16.

По таблице имеем 216 = 00102 и А16 = 10102.

Тогда 0,2А16 = 0,001010102.

Отбросим в результате незначащий ноль и получим окончательный ответ: 0,2А16 = 0,00101012

 

Правило перевода дробных чисел (неправильных дробей)

 

Напомним, что неправильная дробь имеет ненулевую дробную часть, т.е. у нее числитель больше знаменателя.

Результат перевода неправильной дроби всегда неправильная дробь.

При переводе отдельно переводится целая часть числа, отдельно – дробная. Результаты складываются.

 

Пример 1. Выполнить перевод из десятичной системы счисления в шестнадцатеричную числа 19,847. Перевод выполнять до трех значащих цифр после запятой.

Представим исходное число как сумму целого числа и правильной дроби:

19,847 = 19 + 0,847.

Как следует из примера 2 раздела Перевод целых чисел 19 = 1316, а в соответствии с примером 2 раздела Перевод правильных дробей 0,847 = 0,D8D16.

Тогда имеем:

19 + 0,847 = 1316 + 0,D8D16 = 13,D8D16.

Таким образом, 19,847 = 13,D8D16.

 

Правила выполнения простейших арифметических действий

 

Арифметические операции для двоичных и шестнадцатеричных чисел выполняются по тем же правилам, что и для десятичных чисел, которые хорошо знакомы читателю. Рассмотрим на примерах выполнение таких арифметических операций, как сложение, вычитание и умножение для целых чисел.

Правила сложения

Таблица сложения двоичных цифр имеет вид (желтым цветом выделены значения суммы):

 

 

Пример 1. Сложить двоичные числа 1101 и 11011.

Запишем слагаемые в столбик и пронумеруем разряды, присвоив младшему разряду номер 1:

 

номера разрядов:
слагаемые:  

 

Процесс образования суммы по разрядам описан ниже:

а) разряд 1: 12 + 12 = 102; 0 остается в разряде 1, 1 переносится в разряд 2;

б) разряд 2: 02 + 12 + 12 = 102, где вторая 12 – единица переноса; 0 остается в разряде 2, 1 переносится в разряд 3;

в) разряд 3: 12 + 02 + 12 = 102, где вторая 12 – единица переноса; 0 остается в разряде 3, 1 переносится в разряд 4;

г) разряд 4: 12 + 12 + 12 = 112, где третья 12 – единица переноса; 1 остается в разряде 4, 1 переносится в разряд 5;

д) разряд 5: 12 + 12 = 102; где вторая 12 – единица переноса; 0 остается в разряде 5, 1 переносится в разряд 6.

Таким образом: 1 1 0 12 +1 1 0 1 12 = 10 1 0 0 02.

Проверим результат. Для этого определим полные значения слагаемых и суммы (см. Перевод целых чисел):

11012 = 1*23 +1*22 + 0*21 + 1*20 = 8 + 4 + 1 = 13;

110112 = 1*24 + 1*23 + 0*22 + 1*21 + 1*20 = 16 + 8 + 2 + 1 = 27;

1010002 = 1*25 + 0*24 + 1*23 + 0*22 + 0*21 + 0*20 = 32 + 8 = 40.

Поскольку 13 + 27 = 40, двоичное сложение выполнено верно.

 



<== предыдущая лекция | следующая лекция ==>
Диапазоны значений целых чисел со знаком | Позиционные Непозиционные


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.008 сек.