Конвертирование величин из одной системы исчисления в другую при помощи ЭВМ

 

Оглавление

двоичный программный число процессор

Задание

Исходные данные

Введение

. Методы организации данных. Организация данных в оперативной памяти

. Организация данных во внешней памяти ЭВМ

. Общие сведения о системах счисления (СС)

4. Арифметический тип данных

4.1 Прямой код

4.1.1 Операция сложения положительных чисел, представленных в прямом коде

4.2 Обратный код

4.2.1 Операция сложения положительного числа и отрицательного числа, представленного в дополнительном коде

5. Сложение и вычитание чисел с плавающей запятой

6. Логический тип данных

7. Текстовый тип данных

8. Методика выполнения работы

Вывод



Задание


Цель работы

Тестирование арифметико-логического блока процессора на уровне двоичных форм представления данных типовыми программными средствами ЭВМ.



Исходные данные


)Типы данных:

арифметический, логический и текстовый;

)Среда разработки программных средств:Visual Studio 2008;

)Теоретические сведения на основе лекций по курсу "ЭВМ и периферийные устройства".

)IBM-совместимая ЭВМ.



Введение


При работе на ЭВМ ведётся обработка большого количества данных разных типов. В программах, написанных на ЯВУ можно встретить данные логического типа boolean, арифметических типов integer, byte, short, decimal, а также данные текстовых типов character и string. Но на физическом уровне все эти данные хранятся и обрабатываютсяпроцессором как двоично-кодированные числа. Далее эти данные обрабатываются средствами представления данных и выводятся в требующемся пользователю виде: как десятичное или шестнадцатеричное число, как в виде текста, и т.д. То, какой смысл заключен в данных, как они выражены и что означают, определяет программа обработки.

Процедура хранения информации в ПК состоит в том, чтобы сформировать и поддерживать структуру хранения данных в памяти компьютера. Данные, хранящиеся в памяти ЭВМ, представляют собой совокупность нулей и единиц - битов. Биты объединяются в последовательности - байты, слова и т.д. Каждому участку оперативной памяти, который может вместить один байт или одно слово, присваивается порядковый номер (адрес). Каждый бит байта может быть установлен (включен, "1"), или же сброшен (выключен, "0"), всего может быть 256 различных наборов вариантов битов в байте.



1. Методы организации данных. Организация данных в оперативной памяти


Методы хранения данных в памяти ЭВМ обычно предполагаютраздельное хранение значений каждой составной единицы информации (СЕИ). Отдельное значение СЕИ, находящееся в памяти ЭВМ, называется записью. Запись состоит из значений атрибутов, входящих в структуру СЕИ.

Множество записей образует массив, или файл. Термин массив обычно используется при рассмотрении данных в оперативной памяти ЭВМ, а термин файл применяется для данных, хранимых на внешних запоминающих устройствах.

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

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

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

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

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

Древовидной организацией данных (деревом) называется множество записей, расположенных по уровням следующим образом:

на 1-м уровне расположена только одна запись (корень дерева)

к любой записи i-го уровня ведет адрес связи от одной записи уровня i-1.

В данном определении понятия "дерево" и "уровень" вводятся одновременно. Если записи получат номера уровней, соответствующие определению, то они получат и древовидную организацию. Количество уровней в дереве называется рангом. Записи дерева, которые адресуются от общей записи (i-1)-го уровня, образуют группу. Максимальное число элементов в группе называется порядком дерева. Деревья обычно формируются двунаправленными, адрес связи от записи уровня i+1 к записи i-го уровня называется обратным.

При размещении дерева в памяти ЭВМ каждая запись может занимать произвольное место. Назовем звеном связи набор адресов связи, принадлежащих одной записи. Если порядок дерева равен р, то звено связи состоит из р+1 адресов (один адрес обратный, определяющий связь с записью непосредственно более высокого уровня). Корень дерева адресуется из специального указателя дерева. Незанятые адреса связи содержат признак конца списка. Последовательная, цепная и бинарная древовидная организации данных предназначены для решения общей задачи - обработки записей с одним ключевым атрибутом. Поскольку они взаимозаменяемы, имеет смысл задача выбора наилучшей организации данных. По критерию времени формирования данных цепной каталог и бинарное дерево имеют определенные преимущества перед последовательным массивом, несмотря на то, что процессы формирования описываются одинаковыми формулами. По времени поиска последовательный массив и бинарное дерево предпочтительнее цепного каталога. Минимальное время корректировки характерно для бинарного дерева, а минимальный объем дополнительной памяти - для последовательного массива.

Таким образом, абсолютно безупречного метода организации данных не существует. Однако, минимальное время обычно считается более важным критерием, чем минимальная дополнительная память, и тогда лучшим методом организации данных в оперативной памяти ЭВМ необходимо признать упорядоченное бинарное дерево.



2. Организация данных во внешней памяти ЭВМ


В качестве внешней памяти ЭВМ используются в основном устройства электромагнитной записи сигналов, для которых характерно примерное равенство затрат времени на чтение и запись информации, - магнитные диски. В отличие от оперативной памяти ЭВМ для них перед непосредственно чтением/записью требуется подвод необходимого участка магнитного носителя к механизму чтения/записи (в реальных запоминающих устройствах могут двигаться и носитель данных, и механизм чтения/записи).Поэтому время доступа к данным на внешнем запоминающем устройстве зависит от места расположения данных на диске или ленте, что существенно отличает их от оперативной памяти и определяет специфику организации данных во внешней памяти ЭВМ.

Данные на внешнем запоминающем устройстве хранятся в виде файлов.

Файл представляет собой множество логически связанных записей.

Запись обычно соответствует одному значению некоторой составной единицы информации. Каждый файл имеет уникальное имя файла. В простейшем случае файл представляет последовательный массив записей на внешнем запоминающем устройстве. Организация внешней памяти персональных ЭВМ имеет ряд отличий от принципов, используемых в мини-ЭВМ и средних ЭВМ. Вся внешняя память разделена на физические блоки (секторы), имеющие фиксированный размер (обычно 512 байт), который не зависит от желания проектировщика системы.

Обмен с оперативной памятью происходит только целыми секторами.

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

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

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

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

·индекс первого уровня отмечает последнюю запись каждой дорожки магнитного диска;

·индекс второго уровня отмечает последнюю запись каждого цилиндра магнитного диска.

Если файл индекса второго уровня достаточно велик по размеру, то для него допускается создание индекса третьего уровня. Если в индекс попадает информация о ключе каждой записи, то получаем индексно-произвольный доступ. Записи файла могут быть при этом не упорядочены по значению ключа. Индекс для индексно-произвольного метода доступа практически всегда формируется как многоуровневый.

Прямой метод доступа соответствует файлу, который использует адресную функцию вида i=p-a. Для прямого доступа характерны следующие особенности:

·не требуется упорядоченность записей файла;

·наличие повторяющихся значений ключа недопустимо;

·значениям нескольких ключей может соответствовать один и тот же адрес.

На выбор между названными выше методами организации файлов существенное влияние оказывает количество записей, которое должно быть обработано в процессе реализации запроса. Этот параметр называется долей выборки и равен отношению числа требуемых при выборке записей файла к общему числу записей в файле. 1-я запись - прямая организация, 0..10% - прямая индексная организация, 10..100% - последовательная организация файла.



3. Общие сведения о системах счисления (СС)


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

Существует множество различных систем счисления. Их можно разделить на три категории:

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

·Непозиционные системы счисления.

·Смешанные системы счисления.

Основой построения ЭВМ является ориентация на обработку данных в двоичном виде вещественных чисел. Для поля вещественных чисел приняты правила представления числа в заданной системе счисления с определенным основанием b. В общем виде число с фиксированной запятой записывается как:



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



Кроме формы записи числа с фиксированной точкой существует также запись с плавающей запятой:



аx - порядок числа, fx - мантисса, значащая часть числа.

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


Таблица 1 - Соответствие между двоичной, десятичной и шестнадцатеричной системами счисления

Десятичная системаДвоичная системаШестнадцатеричная система000000100011200102300113401004501015601106701117810008910019101010A111011B121100C131101D141110E151111F


4. Арифметический тип данных


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

Техническая сложность реализации заключается в отсутствии возможности реализации операции вычитание (нет поддержки операции займа). В ЭВМ в целях упрощения выполнения арифметических операций применяют специальные коды для представления чисел.

Для всех систем счисления, кроме десятичной, имеется прямой код числа, применяемый для реализации операций над знаковыми числами. При записи числа в прямом коде старший разряд равен 0, если число положительное, и 1, если число отрицательное. Однако прямой код имеет и свои недостатки:

·"0" может являться как положительным, так и отрицательным;

·прямой код не позволяет реализовать операции вычитания.

Решение проблемы с вычитанием было найдено в замене вычитания сложением:



(с - y) - дополнение, p - разрядность числа.

Помимо прямого кода числа используется также обратный и дополнительный коды. Обратный код дополняет число до 2p-1 и обозначается как:



Рассмотрим следующее выражение:




[(2p - 1) - y] - обратный код;

- дополнительный код.


4.1 Прямой код


Прямой код - это представление числа в двоичной системе счисления, при котором первый (старший) разряд отводится под знак числа. Если число положительное, то в левый разряд записывается 0; если число отрицательное, то в левый разряд записывается 1.

Таким образом, в двоичной системе счисления, используя прямой код, в восьмиразрядной ячейке (байте) можно записать семиразрядное число. Например:

00011010 - положительное число

00011010 - отрицательное число

Количество значений, которые можно поместить в семиразрядной ячейке со знаком в дополнительном разряде равно 256. Это совпадает с количеством значений, которые можно поместить в восьмиразрядную ячейку без указания знака. Однако диапазон значений уже другой, ему принадлежат значения от -128 до 127 включительно (при переводе в десятичную систему счисления).

При этом в вычислительной технике прямой код используется почти исключительно для представления положительных чисел.

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



4.1.1 Операция сложения положительных чисел, представленных в прямом коде

Прямой код числа "5": 0 000 0101

Прямой код числа "7": 0 000 0111

Два исходных числа сравниваются. В разряд знака результата записывается знак большего исходного числа.

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



После выполнения операции учитывается первый разряд. Результат операции 0 000 1100, ("12" в десятеричной системе).


.2 Обратный код


В дополнительном коде, также как и прямом, первый разряд отводится для представления знака числа. Прямой код используется для представления положительных чисел, а дополнительный - для представления отрицательных. Поэтому, если в первом разряде находится 1, то мы имеем дело с дополнительным кодом и с отрицательным числом.

Все остальные разряды числа в дополнительном коде сначала инвертируются (получение обратного кода), т.е. заменяются противоположными (0 на 1, а 1 на 0). Например, если 1 0001100 - это прямой код числа, то при формировании его дополнительного кода, сначала надо заменить нули на единицы, а единицы на нули, кроме первого разряда. Получаем 1 1110011. Но это еще не окончательный вид дополнительного кода числа. Далее следует прибавить единицу к получившемуся инверсией числу:


1110011 + 1 = 1 1110100


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

Причина, по которой используется дополнительный код числа для представления отрицательных чисел, связана с тем, что так проще выполнять математические операции. Например, имеется два числа, представленных в прямом коде. Одно число положительное, другое - отрицательное и эти числа нужно сложить. Однако просто сложить их нельзя. Сначала компьютер должен определить, что это за числа. Выяснив, что одно число отрицательное, ему следует заменить операцию сложения операцией вычитания. Потом, машина должна определить, какое число больше по модулю, чтобы выяснить знак результата и определиться с тем, что из чего вычитать. В итоге, получается сложный алгоритм. Эффективнее складывать числа, если отрицательные преобразованы в дополнительный код.


.2.1 Операция сложения положительного числа и отрицательного числа, представленного в дополнительном коде

Прямой код числа "5": 0 000 0101

Прямой код числа "-7": 1 000 0111

Формирование дополнительного кода числа "-7".

Прямой код: 1 000 0111

Инверсия (обратный код): 1 111 1000

Добавление единицы (дополнительный код): 1 111 1001

Операция сложения:




Проверка результата путем преобразования к прямому коду.

Дополнительный код: 1 111 1110

Вычитание единицы: 1 111 1101

Инверсия: 1 000 0010 ("-2" в десятеричной системе).



5. Сложение и вычитание чисел с плавающей запятой


Спецификой представления числа с плавающей запятой является разделение его на две компоненты: ax - порядок числа;fx - мантисса, значащая часть (представляется в дробном виде).



Пример:


,71 = 5,571*10-1,


где 5,571 - мантисса, 10-1 - порядок.

При кодировании отрицательного числа знак "-" кодируется единицей, которая ставится непосредственно перед числом, знак "+" - нулем. При использовании формата с плавающей точкой пользуются понятием нормализованного представления чисел. Нормализованным числом называется число, мантисса которого удовлетворяет следующим неравенствам:



Пример:


,0056 = 0,56*10-2;

,001 = 0,1*10-2


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


Рисунок 1 - устройство для сложения и вычитания чисел с плавающей запятой



6. Логический тип данных


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

Логические функции ИЛИ-НЕ и И-НЕ образуются как отрицание функций ИЛИ и И.

Для синтеза полного сумматора необходимо объединить два полусумматора: при сложении многоразрядных двоичных чисел полусумматор справляется только с самыми младшими разрядами. Во всех остальных случаях приходится складывать не два, а три бита, поскольку добавляется перенос из ближайшего низшего разряда.


Рисунок 2 - RS-триггер на ЛЭ "ИЛИ-НЕ"


Для анализа и синтеза элементов и устройств ЭВМ широкое применение нашла булева алгебра, названная в честь английского математика Джорджа Буля. Теоретико-множественный вид данной алгебры выглядит следующим образом:

=<B,, , ¬>,


где B = {0, 1} - исходное числовое множество с допустимыми операциями , , ¬ (логические сложение, умножение и отрицание).

Булева алгебра построена на следующих аксиомах:

)Для любых x, yB удовлетворяются отношения xy=z1 B и x y=z2 B.

)В множестве В есть такие элементы 0 и 1: для всякого xB x0=x, x1=x.

)Для всех x, y, z B, справедливы следующие свойства дистрибутивности:


(xy)z=(xz)(yz)


)Для всякого x B имеется его дополнение (отрицание) ¬x B - такое, что x¬x=1, x¬x=0.

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

Логическая функция - это логическое выражение, составленное из Булевых логических переменных. Пример логической функции:

(x1,x2,x3)= (x1x2)¬x3


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


Таблица 3 - Таблица истинности логической функции f(x1,x2,x3)

x1x2x3x1x2¬x3(x1x2) ¬x3000010001000010111011100100111101100110111111100


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

совершенная дизъюнктивная нормальная форма (СДНФ) - дизъюнкция элементарных логических произведений всех переменных, взятых с учетом отрицаний, на которых функция принимает значение "1":



Совершенная конъюнктивная нормальная форма (СКНФ) - конъюнкция элементарных дизъюнкций всех переменных, дающих "0":




7. Текстовый тип данных


Применяется для хранения любой символьной информации. Большое применение нашел в сети Интернет, где распространение получила одна из его разновидностей - гипертекст. С помощью языков разметки гипертекста (XML, HTML, PHP и пр.) информация предоставляется удаленному пользователю в удобном виде.

Часто текстовые данные понимаются в более узком смысле - как текст на каких-либо языках (формальных или естественных), который может быть прочитан и понят человеком.

Текстовому формату противопоставляются "двоичные данные", информация в которых закодирована произвольным образом, не рассчитанном на восприятие человеком.

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

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

Текстовый формат часто используются для представления данных, которые сами не являются чисто текстовыми. В этом случае другие форматы данных "надстраиваются" над простым текстом, для чего их управляющие конструкции выражаются посредством печатных слов и знаков препинания.

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

В качестве примера ниже приводится часть исходного кода программы, переведенного в шестнадцатеричный вид.


Рисунок 3 -часть исходного кода программы, в шестнадцатеричном виде



8. Методика выполнения работы


При написании программы для тестирования арифметико-логического блока процессора я использовал язык высокого уровня С#.

Интерфейс программы представляет собой вывод данных программы на экран для ведения диалога с пользователем. Здесь добавить блок-схему программы (диалог с пользователем, возможные ветви - в общем виде) Пользователю предлагается ввести два десятичных числа для выполнения операции двоичного сложения, вычитания, умножения. Результат представляется пользователю для его удобства в шестнадцатеричном виде. Операции с логическим типом данных выполняются после ввода пользователем значений двух операндов ("true" или "false"). На экран выводятся результаты трех базовых логических операций ("И", "ИЛИ", "НЕ"). Блок операций с текстовым типом данных включает в себя: перевод введенного текста в шестнадцатеричный вид, поиск указанного слова во введенном ранее тексте.

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

Первоначально необходимо создать новый проект в среде разработки VisualStudio 2008. Для этого необходимо нажать кнопку "NewProject…" или в меню "File" -> "New" -> "Project…".


Рисунок 4 - создание нового проекта


Далее выбирается тип приложения. В нашем случае - это консольное приложение (ConsoleApplication) (рисунок 5).


Рисунок 5 - настройки для создания проекта


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


Рисунок 6 - написание программы


Выполнение тестов:

Тестирование программы ведется в процессоре с 32-х разрядной сеткой.

)Сложение двоичных чисел.

Пусть заданы два целых четырехразрядных числа со знаком в прямом коде х = 001012 (число 510), у = 111012 (число -310). Требуется вычислить сумму


sum = x+y.


Операция сложения:



Двоичное число 000102 соответствует десятичному числу 210 в соответствии с таблицей 1.

) Вычитание двоичных чисел с использованием дополнительного кода (заменить числа, пример взять как образец)

Пусть заданы два целых четырехразрядных числа со знаком в прямом коде х = 001012 (число 510), у = 111012 (число -310). Требуется вычислить разность

= y - x.


Находим дополнительный код числа -

: = + 1 = 110112.


Затем получаем значение разности:

= y + =111012 + 110112 = 110002 = -810


) Умножение двоичных чисел.

Пусть заданы два целых четырехразрядных числа со знаком в прямом коде х = 001012 (число 510), у = 111012 (число -310).

Требуется вычислить произведение

= x* y.


Операция умножения:



Двоичное число 111100012 соответствует десятичному числу -1510

) Выполнение логического умножения (операция "И").

Пусть заданы два операнда типа boolean:


х = true, у = false.


Требуется вычислить значение логического умножения

= xy.


В соответствии с таблицей истинности логического вентиля "И":P = false.

) Выполнение логического сложения (операция "ИЛИ").

Пусть заданы два операнда типа boolean:


х = true, у = false.



Требуется вычислить значение логического сложения

= xy.


В соответствии с таблицей истинности логического вентиля "ИЛИ":P = true.

) Выполнение логического отрицания (операция "НЕ").

Пусть заданы два операнда типа boolean:


х = true, у = false.


Требуется вычислить значения логического отрицания каждого из аргументов:

= ¬x, NY = ¬y.


В соответствии с таблицей истинности логического вентиля "НЕ":

= false, NY = true.



Вывод


ЭВМ используют нестандартные для человека системы исчисления, что обусловлено техническими ограничениями. Для перевода значений между системами исчисления удобно использовать специализированное ПО, пример которого был рассмотрен в данном отчете. Конвертирование величин из одной СИ в другую при помощи ЭВМ занимает мало времени и легко программируется.



Оглавление двоичный программный число процессор Задание Исходные данные Введение . Методы организации данных. Организация данных в оперативной па

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ