Кодирование вещественных чисел 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Кодирование вещественных чисел



Результаты исследований

Функциональная диаграмма информационных систем:

 

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

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

При построении диаграмм потоков данных было использовано ПО Process Builder Ramus.

 

Основные символы диаграмм потоков данных:

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

Хранилище (накопитель) данных позволяет определять данные, которые будут сохраняться в памяти между процессами. Информация, которую оно содержит, может использоваться в любое время после её определения, при этом данные могут выбираться в любом порядке. Имя хранилища — некоторое существительное — должно идентифицировать егосодержимое. В случае когда поток данных входит/выходит в/из хранилища, и его структура соответствует структуре хранилища, он должен иметь то же самое имя, которое нет необходимости отражать на диаграмме.

Внешняя сущность (терминатор) представляет сущность вне контекста системы, являющуюся источником или приёмником системных данных. Её имя должно содержать существительное, например, «источник сигналов».

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

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

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

 

 

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ НЕФТЕГАЗОВЫЙ УНИВЕРСИТЕТ»

 

Институт кибернетики, информатики и связи

Кафедра кибернетических систем

 

 

ОТЧЁТ О ВЫПОЛНЕННОЙ ЛАБОРАТОРНОЙ РАБОТЕ № 2

Дисциплина «Информационные технологии»

Направление 220200 Автоматизация и управление, специальность 220201 Управление и информатика в технических системах

 

Тема. Представление данных в ЭВМ в виде двоичных кодов

 

Выполнил:

студент группы УИТС-08-1

Логинов А.В.

 

Проверил:

Ковалёв П. И.

 

Тюмень 2012

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

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

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

В вычислительной технике используется двоичное кодирование, основанное на представлении данных последовательностью из двух символов: 0 и 1. Эти знаки называются двоичными цифрами, по-английски digit или сокращенно bit (бит).

Одним битом можно выразить два понятия: да или нет, черное или белое, истина или ложь, 0 или 1. Если количество битов увеличить до двух, то уже можно выразить четыре различных понятия:

Тремя битами можно закодировать 8 понятий:

001 011 100 101 110 111.

Увеличивая на единицу количество разрядов, мы увеличиваем в два раза количество значений, которое может быть выражено в данной системе, то есть

N = 2m

где N – количество кодируемых значений;
m – количество двоичных разрядов.

  Кодирование целых чисел

Любое целое число можно представить в виде разложения в полином с основанием два. Коэффициентами полинома являются числа 0 и 1. Например, число 11 может быть представлено в такой форме:

1 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = 11

Коэффициенты этого полинома образуют двоичную запись числа 11: 1011.

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

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

Рис. 1. Представление целых чисел.

Первый разряд используется для хранения знака числа. Обычно «+» кодируется нулём, а «–» – единицей. Диапазон представления целых чисел зависит от числа двоичных разрядов. С помощью одного байта могут быть представлены числа в диапазоне от –128 до +127. При использовании двух байтов могут быть представлены числа от –32 768 до +32 767.

Понятие языка

Язык — это заданный набор символов и правил, установленные в различные комбинации этих символов между собой, для записи осмысленных текстов.

Алфавит — счетное множество допустимых символов языка — V.

Цепочка символов α является цепочкой над алфавитом α(V), если в неё входят только символы, принадлежащие множеству символов V.

Язык L над алфавитом V — L(V) это некоторое счетное подмножество цепочек конечной длины из множества всех цепочек над алфавитом V.

Цепочку символов, принадлежащую заданному языку, называют предложением.

Язык можно задать 3 способами:1)перечисление всех допустимых цепочек; 2)указание способа порождения предложений языка (грамматика); 3)определение метода распознавания языка (распознаватель, автомат)

Лексика — совокупность слов (словарный запас).

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

Семантика — раздел языка, определяющий значение предложений языка (определяет содержание языка).

Часто формальные языки лишены смысла.

 

ОПИСАНИЕ РАБОТЫ АВТОМАТА

 

Время работы автомата разделено на такты (интервалы). На вход автомата поступает символьная цепочка; в начале каждого такта автомат читает очередной символ цепочки, состояние автомата в конце такта однозначно определяется прочитанным символом и состоянием автомата в конце предыдущего такта. Автомат можно задать с помощью функции z = f (x, y), аргументами которой служат символ x, прочитанный в начале такта, и состояние системного блока в конце предыдущего такта y, а значением — состояние z системного блока в конце текущего такта.

 

Распознавание конструкций языка автоматом. Множество S всех возможных состояний системного блока разбивают на два подмножества, U и V. Считается, что автомат распознаёт конструкции языка, если системный блок переходит в состояние, принадлежащее подмножеству U, когда прочитанная часть символьной цепочки является конструкцией языка, в противном случае это состояние принадлежит подмножеству V.

 

Пример. В примере пункта 5.5 мы описали формальную грамматику простейшего языка арифметики, в которой три нетерминальных символа. Построим автомат, распознающий конструкции этого языка. В начале работы автомата системный блок будет находиться в состоянии <начало>. Автомат читает цепочку символов, поступающих на его вход:

если она является набором цифр, системный блок переходит в состояние <прочитано число>;

если она является суммой целых неотрицательных чисел, системный блок переходит в состояние <прочитана сумма>;

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

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

 

Состояния

Символы, поступающие на вход

Цифры 0, 1, 2, 3 4, 5, 6, 7, 8, 9 Знак плюс ('+') Символ, отличный от цифр 0, 1, 2, 3 4, 5, 6, 7, 8, 9 и знака плюс
<начало> <прочитано число> <ошибка> <ошибка>
<прочитано число> <прочитано число> <прочитан знак плюс> <ошибка>
<прочитан знак плюс> <прочитана сумма> <ошибка> <ошибка>
<прочитана сумма> <прочитана сумма> <прочитан знак плюс> <ошибка>
<ошибка> <ошибка> <ошибка> <ошибка>

Работу автомата можно описать с помощью следующей таблицы:

 

 

Составим программу, которая реализует автомат, распознающий конструкции простейшего языка арифметики:

 

/* программа реализует автомат, распознающий конструкции простейшего языка арифметики;

стандартный канал ввода должен быть соединён с текстовым файлом;

если цепочка символов, поступившая на вход, является суммой целых неотрицательных чисел, программа выдаёт сообщение YES, в противном случае программа выводит на экран сообщение NO */

 

#define BEGIN     0

#define NUMBER 1

#define AND_PLUS  2

#define SUMMA    3

#define ERROR    4

/* именованные константы BEGIN, NUMBER, AND_PLUS, SUMMA, ERROR представляют состояния системного блока автомата */

 

#include <stdio.h>

 

main()

{

int c, state = BEGIN; /*переменная c служит буфером, в неё заносится символ, поступивший в стандартный канал ввода, state — флаг, в ней содержится значение текущего состояния системного блока автомата */

 

while (((c = getchar())!= EOF) && (state!= ERROR))

/* программа читает один за другим символы из стандартного канала ввода, цикл завершается, когда будут прочитаны все символы или системный блок автомата перейдёт в состояние ERROR */

 

    if (('0' <= c) && (c <= '9'))

    /* если прочитана цифра*/

 

              switch (state)

                       {case BEGIN:

                                 state = NUMBER;

                                 break;

                       case AND_PLUS:

                                 state = SUMMA;

                                 break;

                       }

 

              else

 

                       if ('+' == c)

                       /* если прочитан знак плюс */

 

                                 switch (state)

                                          {case NUMBER: case SUMMA:

                                                   state = AND_PLUS;

                                          default:

                                                   state = ERROR;

                                          }

 

                       else

                                 state = ERROR;

 

if (SUMMA == state)

    printf (“YES”);

 

    else

              printf (“NO”);

}

 

КОНЕЧНЫЙ АВТОМАТ

 

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

 

 

Заключение:

В результате выполнения лабораторной работы №3, был разобран процесс распознавания конструкция языка с регулярной грамматикой. Были даны определения: языка, алфавита, синтаксиса, семантики. Также, была рассмотрена запись грамматики в форме Бэкуса-Наура. Было проведено описание работы автомата, а также разработана программа, которая реализует автомат, распознающий конструкции простейшего языка арифметики.

 

 

ПЕРЕЧЕНЬ ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

 

 

Акулов О. А. Информатика. Базовый курс: учебное пособие // О. А. Акулов, Н. В. Медведев. – М.: Наука, 2005.- 552 с.

 

Дополнительная литература

Симонович С. В. Информатика. Базовый курс: учебное пособие/ Под ред. С. В. Симоновича. – Спб.: Питер, 2004. – 640 с.

 

 

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ НЕФТЕГАЗОВЫЙ УНИВЕРСИТЕТ»

 

Институт кибернетики, информатики и связи

Кафедра кибернетических систем

 

ОТЧЁТ О ВЫПОЛНЕННОЙ ЛАБОРАТОРНОЙ РАБОТЕ № 4

 

Дисциплина «Информационные технологии»

Направление 220200 Автоматизация и управление, специальность 220201 Управление и информатика в технических системах

 

Тема. Разработка методического проектирования процесса проектирования СУ

 

Выполнил:         

студент группы УИТС-08-1

Логинов А.В.

 

Проверил          

Ковалёв П. И.        

     

 

 

Тюмень 2012

Цель: Овладение навыками разработки методическое обеспечение проектирования САР.

 

Задание: Составить описание процесса проектирования СУ следующим объектам, состоящих из резервуара и насоса. В начальный момент времени в резервуаре содержится А м  жидкости. В момент времени Б открывается кран, из которого каждую сек. вытекает С м жидкости. Когда в резервуаре остается меньше Т м , включают насос. Насос накачивает в резервуар Т м /сек.  После того, как кол-во жидкости достигает G м жидкости, насос отключают.

Процесс проектирования включает в себя:

1) Законы, регулирующие разработку технических систем.

2) Проблемы защиты интеллектуальной собственности: как составляется патент, как осуществляется поиск патентов.

3) Документы, регламентирующие состав, содержание и структуру проекта автоматизированной системы.

4) Разработка проекта RAD-технологии посредством Rockwell Software.

Разработка интерфейса автоматизированной системы средствами RSView32 Works. Это инструментальная среда для разработки и исполнения человеко-машинного интерфейса, ориентированное на ОС Microsoft Windows. RSView32 Works реализует концепцию быстрой разработки приложения.

Для запуска программы заходим в меню Пуск/Rockwell Software/RSView32/ RSView32 Works/. После запуска открывается пустое окно программы.

Для создания нового проекта необходимо в главном меню «File» нажать кнопку нового проекта New Project.

Cистема создает папку проекта с именем my project, в этой папке содержится файл.rsv. Появляется окно Project Manager, оно включает две панели, левая – Edit Mode, в ней содержатся папки с редакторами (Systems, Graphics), а также окно Run Mode, при помощи которого запускается проект.

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

Работа с тегами в RSView32 осуществляется в окне Tag Database, для открытия которого необходимо в окне редактирования Edit Mode выбрать папку System и среди представленных подпунктов выбрать Tag Database.

Для создания аналогового тега необходимо указать имя тега в поле Name, в поле Type выбрать Analog, т.е. аналоговый. При необходимости можно задать описание тега в поле Description. Для указания диапазона значений тега используются поля Scale и Offset, при этом значения полей Minimum и Maximum следует оставить без изменения. После введения общей информации о теге необходимо указать источник данных создаваемого тега в Data Source. В качестве источника данных используется программа-эмулятор контроллера, которую следует запускать отдельно от RSView32 English. Для этого переходим в Пуск/Rockwell Software/RSView32/Animate. Затем, в Data Source в поле Type выберем Device, после чего в поле Node Name нажмём на кнопку «…». В открывшемся окне Node Browser для создания нового источника данных необходимо нажать кнопку Add, затем указать тип источника данных в поле Data Source, выбрав DDE Server. Далее, в открывшемся окне в поле Address необходимо указать тот источник данных из колонки Tagname программы Animate, который считается наиболее подходящим для создаваемого тега.

Для создания дискретного тега так же необходимо указать имя тега в поле Name, затем в поле Type выбрать Digital. В поле Offlabel указывается 0, что говорит о том, что контакт разомкнут а в поле Onlabel указывается 1, что говорит о том, что контакт замкнут. В качестве источника данных для дискретных тегов обычно используется Memory. В поле Initial Value указывается то значение тега, которое он будет принимать при запуске программы, т.е. 0 или 1.

Для создания мнемосхем необходимо в окне Edit Mode перейти в папку Graphics. Далее в открывшемся меню выбираем элемент Display.

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

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

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

В качестве примера рассмотрим настройки анимации с использованием аналогового тега. Пусть имеется ёмкость, необходимо, чтобы уровень в ёмкости изменялся согласно аналоговому тегу Uroven. Для этого выберем красный прямоугольник, который условно будет являться уровнем. В списке меню Animation выберем Height. В открывшемся окне выберем тег, согласно которому будет изменяться уровень в ёмкости, в нашем случае это тег Uroven. Выбор тега осуществляется через кнопку Tags. В поле Anchor указывается часть прямоугольника, которая остается неподвижной. Так как уровень в ёмкости исчисляется от дна, то выбираем Bottom. В поле Vertical Change указываются пределы изменения высоты прямоугольника на экране.

Для создания анимации с использованием дискретного тега разместим на дисплее кнопку, изобразим насос и создадим тег памяти дискретного типа. Из библиотеки Buttons – Industrial разместим две кнопки, одну из которых будем использовать для пуска насоса, а другую для его останова. При этом кнопка пуска будет являться видимой в том случае, когда насос выключен, а кнопка останова будет видимой в том случае, когда насос включен. Для кнопки останова в поле анимации Touch в поле PressAction через кнопку «…» зададим команду Set. При этом потребуется указать тег состояния насоса, в нашем случае это тег Nasos. В поле «Set to» необходимо выбрать Value or Label и написать «0». Таким образом, мы создадим анимацию, которая позволяет при нажатии на кнопку устанавливать значение тега Nasos в «0». Далее, в поле анимации Visibility поставим на эту же кнопку условие видимости. Для этого пропишем следующее условие «If (Nasos == 1) Then 1 Else 0», а в поле «Expression True State» поставим галочку напротив «Visible». Таким образом, если значение тега состояния насоса будет равно «1», то условие в поле «Expression» будет выполняться и кнопка останова насоса будет видимой. Если же условие не будет выполняться, то кнопка будет невидимой. Аналогичные действия проделываем с кнопкой пуска насоса, но наоборот.

Таким образом, кнопками осуществляется запуск и останов насоса.

В случае если необходимо показать значение тега на мнемосхеме, например, отображение значений с датчиков, нужно воспользоваться объектом Numeric Display, имеющийся на панели рисования Drawing Toolbox. В окна настроек Numeric Display очень удобно создавать теги в процессе рисования дисплеев. Для этого можно воспользоваться кнопками New и Edit. В поле Expression есть возможность указывать различные сложные математические выражения. Для вывода на экран дробных чисел нужно указать соответствующий формат вывода в строке Format:Floating Point и количество разрядов общее и после запятой (Field Length и Decimal Places).

Для запуска проекта необходимо на закладке Run Mode менеджера проекта нажать на кнопку Run Project. Проект успешно запущен. Для останова проекта используем кнопку Stop Project.

Разработка программы автоматизированной системы средствами RSLogix 500. Для запуска ПО нужно выполнить следующую последовательность действий: открываем Пуск/Rockwell Software/ RSLogix English/ RSLogix English/.

На панели инструментов заходим в главное меню “File”, далее New project. Cистема создает файл.rss. Открываются два окна:

· Окно инструментов;

· Главное окно проектирования.

В окне инструментов заходим в папку Program Files.

Далее открываем файл LAD1.  В главном окне проектирования появляются ранги, которые являются в свою очередь основой для построения тела программы RSLogix English.

Для написания кода программы необходимо двойным нажатием мыши вызвать поле редактирования программного кода. Его написание и редактирование производится посредством ввода с клавиатуры специальных инструкций, также используется манипулятор «мышь», при помощи которого происходит перемещение инструкций с панели инструкций, а также выделение программного кода, копирование, вставка и так далее.

После написания и редактирования кода программы нам необходимо проверить его на ошибки методом «компиляции». В RSLogix English данная процедура реализуется посредством нажатия на панели инструментов кнопки Verify Project.

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

Запуск проекта осуществляется нажатием на панели инструментов выпадающего меню «Offline» с последующим выбором функции «Download».

После выполнения функции «Download» происходит процесс обработки и сохранения программного кода.

По окончании процесса обработки используя вышеупомянутое нисходящее меню, в котором необходимо вызвать функцию «Run».

По окончании всех вышеописанных манипуляций наш проект успешно запущен.

 

Заключение: В ходе выполнения лабораторной работы были освоены навыки работы с программным обеспечением Rockwell Software RSView32 Works и RSLogix English, также овладел навыками разработки методического обеспечения проектирования системы автоматического регулирования.

Результаты исследований

Функциональная диаграмма информационных систем:

 

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

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

При построении диаграмм потоков данных было использовано ПО Process Builder Ramus.

 

Основные символы диаграмм потоков данных:

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

Хранилище (накопитель) данных позволяет определять данные, которые будут сохраняться в памяти между процессами. Информация, которую оно содержит, может использоваться в любое время после её определения, при этом данные могут выбираться в любом порядке. Имя хранилища — некоторое существительное — должно идентифицировать егосодержимое. В случае когда поток данных входит/выходит в/из хранилища, и его структура соответствует структуре хранилища, он должен иметь то же самое имя, которое нет необходимости отражать на диаграмме.

Внешняя сущность (терминатор) представляет сущность вне контекста системы, являющуюся источником или приёмником системных данных. Её имя должно содержать существительное, например, «источник сигналов».

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

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

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

 

 

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ НЕФТЕГАЗОВЫЙ УНИВЕРСИТЕТ»

 

Институт кибернетики, информатики и связи

Кафедра кибернетических систем

 

 

ОТЧЁТ О ВЫПОЛНЕННОЙ ЛАБОРАТОРНОЙ РАБОТЕ № 2

Дисциплина «Информационные технологии»

Направление 220200 Автоматизация и управление, специальность 220201 Управление и информатика в технических системах

 

Тема. Представление данных в ЭВМ в виде двоичных кодов

 

Выполнил:

студент группы УИТС-08-1

Логинов А.В.

 

Проверил:

Ковалёв П. И.

 

Тюмень 2012

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

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

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

В вычислительной технике используется двоичное кодирование, основанное на представлении данных последовательностью из двух символов: 0 и 1. Эти знаки называются двоичными цифрами, по-английски digit или сокращенно bit (бит).

Одним битом можно выразить два понятия: да или нет, черное или белое, истина или ложь, 0 или 1. Если количество битов увеличить до двух, то уже можно выразить четыре различных понятия:

Тремя битами можно закодировать 8 понятий:

001 011 100 101 110 111.

Увеличивая на единицу количество разрядов, мы увеличиваем в два раза количество значений, которое может быть выражено в данной системе, то есть

N = 2m

где N – количество кодируемых значений;
m – количество двоичных разрядов.

  Кодирование целых чисел

Любое целое число можно представить в виде разложения в полином с основанием два. Коэффициентами полинома являются числа 0 и 1. Например, число 11 может быть представлено в такой форме:

1 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = 11

Коэффициенты этого полинома образуют двоичную запись числа 11: 1011.

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

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

Рис. 1. Представление целых чисел.

Первый разряд используется для хранения знака числа. Обычно «+» кодируется нулём, а «–» – единицей. Диапазон представления целых чисел зависит от числа двоичных разрядов. С помощью одного байта могут быть представлены числа в диапазоне от –128 до +127. При использовании двух байтов могут быть представлены числа от –32 768 до +32 767.

Кодирование вещественных чисел

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

При представлении вещественных чисел в форме с фиксированной точкой положение десятичной точки в машинном слове фиксировано (рис. 3).

Рис. 2. Вещественное число с фиксированной точкой.

Чаще всего точка фиксируется перед первым разрядом числа (рис.4).

 

Рис. 3. Вещественное число с точкой перед первым разрядом.

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

В форме с плавающей точкой вещественное число х представляется в виде

x = M x 2p

где |M|<1 и называется мантиссой, p – целое число, называемое порядком (рис. 5).

Рис. 4. Вещественное число с плавающей точкой.

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

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

0.0011101 ненормализованное представление,

0.1110100 нормализованное представление.

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



Поделиться:


Последнее изменение этой страницы: 2020-12-09; просмотров: 184; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.17.75.227 (0.16 с.)