русс | укр

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

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

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

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


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

Арифметические основы ЭВМ


Дата добавления: 2014-09-06; просмотров: 4180; Нарушение авторских прав


1.1.1 Позиционные системы счисления

Системой счисления называют способ изображения произвольного числа ограни-ченным набором цифр. Номер позиции, определяющий вес, с которым данная цифра складывается в числе, называют разрядом, а системы счисления, обладающие отме-ченным свойством, — позиционными.

В общем случае n-разрядное положительное число Nв произвольной системе счис-ления с основанием рпредставляется суммой вида

n -1

N= Σ аk pk,

k=0

где аk — отдельные цифры в записи числа, значения которых равны членам натураль-ного ряда в диапазоне от 0 до (р– 1).

Двоичная система счисления. При выполнении вычислений цифровыми электрон-ными устройствами используются элементы с двумя устойчивыми состояниями. Поэ-тому в цифровой технике широкое распространение получила позиционная двоичная система счисления (с основанием 2). В каждом двоичном разряде, получившем назва-ние бит, может стоять 1 или 0. Сама же запись числа (двоичный код) представляет собой последовательность из единиц и нулей. Чтобы отличить двоичное число от десятичного, будем дополнять его справа суффиксом В (Binary), как это принято в машинно-ориентированных языках программирования, называемых ассемблерами.

Веса соседних разрядов двоичного кода числа отличаются в два раза, а самый правый разряд (младший) имеет вес 1. Поэтому, например

101101В = 1×25 + 0×24 + 1×23 +1×22 + 0×21 + 1×20 = 32+ 0+8+ 4+0+1 = 45.

Четыре соседних бита называют тетрадой, группу из 8 бит называют байтом, а из 16 бит — машинным словом. Совокупность из 1024 (210) байтов называют килобайтом, из 1024 килобайтов — мегабайтом, из 1024 мегабайтов — гигабайтом.

1 Гб = 210 Мб = 220 Кб = 230 байт.

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



Стремление упростить процедуру пересчета двоичных чисел к десятичному эквиваленту и привело к использованию двоично-десятичной системы счисления(BD — Binary Decimals). Она используется в ЭВМ не только в качестве вспомогательной системы счисления при вводе и выводе данных, но и в качестве основной при решении задач, когда в ЭВМ вводится и выводится большое количество чисел, а вычислений над ними производится мало.

Десятичные числа в двоично-десятичной системе счисления кодируются в прямом нормально-взвешенном коде 8-4-2-1, т. е. каждую цифру десятичного числа необходи-мо заменить соответствующей тетрадой двоичных чисел. Например, десятичное число 9531 в двоично-десятичном коде представляется машинным словом из четырех тетрад

9531 = 1001 0101 0011 0001.

Шестнадцатиричная система счисления. Записывать двоичные числа большой разрядности утомительно. Поэтому, как правило, они представляются более компакт-ными записями с использованием шестнадцатеричнойсистемы счисления. В этой сис-теме используют десять членов натурального ряда от 0 до 9, а в качестве остальных цифр — первые шесть латинских букв A = 10, B = 11, C = 12, D = 13, E = 14, F = 15. Справа шестнадцатеричное число будем дополнять суффиксом Н (Hexadecimal).

Перевод двоичного числа в число системы с основанием 16 и наоборот не вызывает затруднений. Для этого исходное двоичное число справа налево разбивается на тетра-ды, а затем содержимое каждой из них рассматривается как двоичный код соответст-вующей цифры шестнадцатеричной системы. Для обратного перехода каждую цифру шестнадцатеричного числа заменяют тетрадой двоичного кода, например:

N = 8B5FH = 1000 1011 0101 1111 B.

 

Таблица 1.1 — Соответствие чисел различных систем счисления

Десятичное число (D)
Шестнадца-тиричное число (Н)
Двоичное число (В)

Продолжение таблицы 1.1

Десятичное число (D)
Шестнадца-тиричное число (Н) А В С D Е F
Двоичное число (В)

 

1.1.2 Перевод целых чисел из одной системы счисления в другую

 

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

системы до тех пор, пока частное от деления не будет меньше основания системы.

Число в новой системе записывается в виде остатков от деления, начиная с последнего частного, справа налево. Цифру старшего разряда даёт последнее частное от деления.

Пример 1.1. Перевести десятичное число 15710 в двоичный код, результат проверить.

число 157:2=78; 78:2=39; 39:2=19; 19:2=9; 9:2=4; 4:2=2; 2:2=1.

остаток 1 0 1 1 1 0 0

младший 1 - старший

разряд разряд

Ответ: 15710 = 1001110012

Проверка: 100111012 = 1×27 + 0×26 + 0×25 +1×24 + 1×23 + 1×22 + 0×21 + 1×20 =

= 128 + 0 + 0 + 16 + 8 + 4 + 0 + 1 =15710.

Пример 1.2. Перевести десятичное число 54410 в двоичный код.

 

число 544:2=272; 272:2=136; 136:2=78; 78:2=39; 39:2=19; 19:2=9; 9:2=4; 4:2=2; 2:2=1

остаток 0 0 0 0 1 1 1 0 0

младший 1 - старший

разряд разряд

Ответ: 54410 = 10011100002

Для облегчения работы с двоичными кодами желательно знать наизусть десятичные значения чисел 2n от n = 0 до n = 12 (таблица 1.2).

 

Таблица 1.2 - Десятичные значения чисел 2n

n
2n

 

Пример 1.3.Перевести число 15710 в восьмеричный код, результат проверить.

число 157:8=19; 19:8=2; 2:8=0; .

остаток 5 3 2

младший старший

разряд разряд

Ответ: 157 = 2358

Проверка: 2358 = 2×82 + 3×81 + 5×80 = 128 + 24 + 5 = 15710.

Для перевода двоичного числа в восьмиричную систему счисления оно делится на триады справа налево и каждая триада заменяется восьмиричным числом:

Пример 1.4. 010 100 101 001 = 24518

 

1.1.3 Представление отрицательных чисел двоичным кодом

 

С помощью байта данных можно представить различную информацию:

– целое число без знака (от 0 до 255);

– число от 0 до 99 в двоично-десятичном коде;

– машинный код команд микропроцессора;

– состояние восьми датчиков;

– двоичное число со знаком в прямом, обратном или дополнительном коде ± Х, где Х - модуль числа (от 0 до 127).

Для отображения модуля числа используется семь младших разрядов, а для отображения знака — старший разряд (0 — для положительных чисел, 1 — для отрицательных).

Прямой, обратный и дополнительный коды положительных чисел совпадают. Для получения дополнительного кода отрицательного числа инвертируется код модуля и прибавляется единица.

Дополнительный код однобайтового числа минус Х равен дополнению до 256, т. е. двоичному коду числа 256 − X . Преобразование дополнительного кода числа в прямой код осуществляется по тому же правилу, что прямого в дополнительный.

Пример 1.5.Записать дополнительный код однобайтового числа минус 10010 = 01100100. Для отображения знака используется старший разряд числа.

Запишем двоичный код числа плюс 100: 01100100

Проинвертируем его: 10011011 Прибавим единицу: 10011100

Проверка: 10011100=128+16+8+4=156=256–100.

Ответ: дополнительный код числа минус 10010 равен 100111002.

 

1.1.4 Перевод десятичного дробного числа в двоичную систему

 

Перевод десятичного дробного числа в десятичную систему производится в два этапа. Вначале переводится целая часть числа, а затем – дробная.

Десятичная дробь переводится в двоичную систему путём последовательного умножения дробной части на основание два. Дробное число записывается в двоичной системе в виде целых частей чисел, полученных при умножении только дробной части на два, начиная сверху после запятой, и при этом задаётся точность вычислений.

Пример 1.6. Перевести число 187,5610 в двоичную систему с точностью до шестой цифры после запятой.

Перевод целой части.

число 187:2=93; 93:2=46; 46:2=23; 23:2=11; 11:2=5; 5:2=2; 2:2=1;

остаток 1 1 0 1 1 1 0

младший 1 - старший

разряд разряд

18710 = 101110112

Перевод дробной части.

0, ×
×
×
×
×
×

 

0,5610 = 0,1000112 Ответ: 187,5610 = 1011101, 1000112

 

1.1.5 Формы представления чисел

Числа в цифровых устройствах ЦУ могу представляться в форме целых чисел, чисел с фиксированной запятой и чисел с плавающей запятой.

Целые числа при решении задач встречаются в случаях представления индексов переменных, подсчёта числа повторения каких-либо действий и т. д. Для хранения таких чисел в ячейках памяти применяется разрядная сетка, приведённая на рисунке 1.1,а. Старший разряд – знаковый, при этом знак «+» обозначают цифрой «0», а знак «-» - цифрой «1». Младшие разряды сетки занимают цифры модуля числа, свободные старшие разряды заполняются нулями. Например, отрицательное число -1310 = -11012 в восьмиразрядной сетке будет записано так, как это показано на рисунке 1.1,б.

Если количество значащих разрядов модуля числа превышаетn-1, то происходит потеря старших разрядов модуля, что называется переполнением разрядной сетки и приводит к ошибкам представления чисел. Диапазон чисел такой сетки составляет

 

0…2n-1 – 1. В десятичной системе счисления при 16-ти разрядах диапазон чисел составит 0…32×1024-1 ≈ 0…32×103, а при 32-х разрядах - ≈ 2×109.

 

Рисунок 1.1 – Разрядная сетка целого числа

 

Числа с фиксированной запятой.При этой форме запятая ставится перед старшим разрядом модуля числа (рисунок 1.2). Таким образом, модуль оказывается всегда меньше единицы, а для записи произвольного числа применяются масштабные коэффициенты, значения которых постоянны для исходных данных задачи и всех промежуточных результатов вычислений.

Рисунок 1.2 – Разрядная сетка числа с фиксированной запятой

 

При занесении числа в ячейку памяти свободные младшие разряды заполняются нулями.Если число значащих разрядов модуля числа превышает число разрядов сетки, то младшие разряды теряются. Это приводит к погрешности вычислений έАБС, меньшей единицы младшего разряда (при 16 разрядах έАБС < 1/32×10-3, при 32 разрядах <5×10 -10. Если число имеет целую часть, то для неё в разрядной сетке места нет и она теряется.

Достоинства формы: простота выполнения арифметических операций.

Недостатки: 1) необходимость выбора масштабных коэффициентов 2) низкая точность представления чисел с малыми значениями модуля,3) потеря целой части. Числа с плавающей запятойпозволяют представлять числа в широком диапазоне значений и с высокой точностью. Число состоит из мантиссы, старший разряд которой определяет знак числа, и порядка со знаком (рисунок 1.3).

 

Рисунок 1.3 – Разрядная сетка числа с плавающей запятой

 

Модуль мантиссы представляется двоичным дробным числом (т.е. запятая ставится перед старшим разрядом модуля мантиссы М), порядок П представляется целым числом и показывает действительное положение запятой в числе. Точность представления зависит количества цифр мантиссы. Для повышения точности мантиссу нормализуют, то есть обеспечивают 0,5 ≤ |М| < 1. Признак нормализации: наличие «1» в старшем разряде модуля мантиссы.

Достоинство формы:

1. Широкий диапазон представления чисел. При шести разрядах порядка диапазон чисел составляет от 1019 до10-19.

2. Малая погрешность представления чисел, которая зависит от числа разрядов, отводимых под мантиссу.

 

1.1.6 Выполнение арифметических операций в различных системах счисления

 

Основная операция в ЦУ – алгебраическое сложение, то есть сложение и положительных и отрицательных чисел. При этом вычитание заменяется сложеним с числом, знак которого изменён на обратный, умножение и деление выполняются с помощью операции сложения и некоторых логических действий.

При записи кодов чисел знак обозначается полужирными цифрами, а запятая не показывается.

Сложение положительных чисел.

Переносы 11 1

Первое слагаемое N1 001101

Второе слагаемое N2 001101

-----------

Сумма N1 + N2 011010

Цифры разрядов формируются последовательно, начиная с младшего. При этом дополнительно формируется цифра переноса в следующий разряд.



<== предыдущая лекция | следующая лекция ==>
Глоссарий к теме | Алгебраическое сложение с использованием дополнительного кода.


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


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

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

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


 


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

 
 

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

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