Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Формати з плаваючою комою



Формат із плаваючою комою використовується для представлення дробових або дійсних чисел.

У форматі із плаваючою комою число N представляється в наступному виді:

N=m×qp

де m — мантиса (mantissa, significand), p — порядок, q — основа системи числення.

Число у формі із плаваючою комою може бути представлене безліччю способів: 2=20×10-1=0.2×101=0.002×103 і т. д. Для однозначного представлення на мантису накладається обмеження:

q-1≤|m|<1 ,

при дотриманні якого число знаходиться в нормалізованій формі.

Різноманіттю форматів для представлення чисел із плаваючою коми був покладений кінець із введенням стандарту IEEE 754 на обчислення із плаваючю комою, обов'язково присутнього у всіх сучасних ЕОМ загального призначення. Основні формати IEEE 754 зведені в таблицю. З перерахованих, у сучасних процесорах відповідно до рекомендацій IEEE 754 реалізовані формати з одинарною й подвійною точністю. Точніші формати в кожній архітектурі мають свої особливості реалізації.

Параметр З одинарною точністю З одинарною точністю розширений З подвійною точністю З подвійною точністю розширений
Розрядність мантиси (зі знаком), n 24 32 53 64
pmax 127 1023 1023 >16383
pmin −127 ≤−1023 −1023 ≤−16382
Розрядність порядка 8 ≤11 11 15
Розрядність формата 32 43 64 79(80)

Векторні формати

В зв'язку з розвитком технологій мультимедиа, в сучасні процесори почали інтегруватись засоби векторної обробки (хоча векторні процесори як такі відомі досить давно, але застосовувались до цього, як правило, лише в спеціалізованих ЕОМ). Векторні команди можуть оперувати словами високої розрядності (16 байт і вище), в які «упаковані» декілька цілочисельних або дробових операндів стандартного формату. Так, наприклад, в 16-байтний формат можуть бути вкладені 4 4-байтні елементи формату IEEE 754 одинарної точності. Вони утворять чотирикомпонентний вектор, пара яких може бути, приміром, просумована поелементно спеціальною командою додавання векторів.

4. Стандарт ASCII для кодування символьної інформації.

При введенні в комп’ютер кожна літера кодується відповідним чис­лом. Це відбувається найпростішим чином – кожному символу ставиться в відповідність двійкове число, що вибирається з таблиці кодів.

Кодова таблиця – це таблиця, що задає відповідність між символами і двійковими числами (кодами символів).

Коли ви натискаєте клавішу на клавіатурі, електронна схема кла­віатури формує двійковий код символа, що задається кодовою таблицею, наприклад, при натисканні на клавішу Аутворюється код 01000001 = 41H. Існують різні стандарти кодування символів.

За основу кодування символів у персональних комп’ютерах узята кодова таблиця ASCII (American Standart Code for Information Interchange – американський стандарт кодів для обміну інформацією).

Двійковим кодом довжиною 8 бітів = 1 байт можна закодувати 28 = 256 символів. Кожному символу відповідає послідовність із восьми нулів і одиниць. Восьмибітний код використовується для того, щоб можна було б підтримати два алфавіти та різні спеціальні символи. Але різні держави мають свої алфавіти – в Грузії використовуються одні букви, на Україні – інші, тому під одним числовим кодом будуть використовуватися різні символи. В той же час необхідно мати можливість прочитати тест, який був набраний на іншому комп’ютері (в іншій державі). Тому було прийнято таке рішення – таблицю кодів розділили навпіл. Перші 128 кодів (з 0 до 127) повинні бути стандартними і обов’язковими для всіх країн і всіх комп’ютерів, а другою половиною кодів (з 128 до 255) кожна країна може кодувати свій національний алфавіт.

Саме першу (міжнародну) половину таблиці кодів називають табли­цею ASCII (аскі-кодом), її розробив американський інститут стандар­тизації. В цій таблиці розміщуються великі та малі букви латинського алфавіту, символи цифр від 0 до 9, всі розділові знаки, символи арифметичних операцій та деякі інші спеціальні коди.

Перші 32 коди ASCII таблиці (від 0 до 31) не застосовуються для представлення інформації, а застосовуються для керування комп’ютером.

Найперший символ стандарта ASCII – це пробіл. Він має код 20H = 00100000. За ним ідуть спеціальні символи і розділові знаки (коди з 21H по 2FH), далі – десять цифр (коди – 30H – 39H). Коди 3AH – 40H задають деякі математичні символи і розділові знаки, коди 41H – 5AH – великі букви англійського алфавіту, коди 5BH – 60H, 7BH – 7FH – спеціальні символи, коди 61H – 7АH - малі букви англійського алфавіту.

Нижче приведений один з декількох варіантів:

Приклад и

1. Символ f у таблиці має номер 102.

2. Символ Б має номер 129.

3. Символи англійська A та російська A мають однаковий вигляд, але внутрішні коди в них різні – 65 та 128.

4. Символ 0 (нуль) має внутрішній код 48.

5. Символ пробіл має внутрішній код 32.

6. Великі та маленькі літери мають різні ASCII–коди.

Для виведення на екран символу, якого немає на клавіатурі, потрібно зажати клавішу ALT, набрати ASCII–код символу на цифровій клавіатурі, а потім відпустити клавішу ALT.

Студент повинен

знати :

v Означення системи числення.

v Основні вимоги до системи числення.

v Види систем числення.

v Особливості та сфери застосування двійкової системи числення.

v  Особливості та сфери застосування вісімкової системи числення.

v Особливості та сфери застосування шістнадцяткової системи числення.

v Схему переходу від однієї системи числення до іншої.

v Переваги та недоліки позиційної системи числення.

v Переваги та недоліки непозиційної системи числення.

v Формати даних.

v Означення кодової таблиці.

вміти :

v Здійснювати перехід від системи числення з меншою основою до системи числення з більшою основою і навпаки.

v Розрізняти системи числення.

v Розрізняти формати даних.

v Знаходи коди символів за допомогою таблиці кодів.

Питання для самоконтролю

1. Дайте означення системи числення.

2. Назвіть основні вимоги до системи числення.

3. Перелічіть види систем числення.

4. Назвіть особливості та сфери застосування двійкової системи числення.

5.  Назвіть особливості та сфери застосування вісімкової системи числення.

6. Назвіть особливості та сфери застосування шістнадцяткової системи числення.

7. Назвіть схему переходу від однієї системи числення до іншої.

8. Назвіть переваги та недоліки позиційної системи числення.

9. Назвіть переваги та недоліки непозиційної системи числення.

10. Перелічіть формати даних.

11. Дайте означення кодової таблиці.

12. Охарактеризуйте цілочисельний формат даних.

13. Охарактеризуйте векторний формат даних.

14. Як кодуються символи? Наведіть приклади.

 Література

[10] c. 56-77


1.4. Команди введення/виведення С та С++


Питання для опрацювання

1.Команди введення/виведення С++.

2.Керуючі послідовності.

Методичні рекомендації

Під час опрацювання даної теми студенти повинні в ивчити порядок використання команд стандартних бібліотек вводу/виводу в Сі та С++.

1. Команди введення/виведення С++ та С

Якщо нам потрібно ввести дані в комп'ютер, то будемо користуватися командою cin. Синтаксис оператора уведення:

cin>>ім'я_змінної;

ім'я_змінної вказує на змінну, у яку потрібно помістити дані, введені із клавіатури:

Наприклад:

cin>>vik;

Ця команда поміщає число, уведене із клавіатури, у змінну з ім'ям vik.

Уведення відразу декількох змінних записують так:

cin>>ім'я_змінної1>>ім'я_змінної2>>...>>ім'я_змінної;

Список імен змінних повинен містити імена всіх змінних, у які Ви хочете ввести дані із клавіатури. Список імен може складатися з будь-якої кількості імен змінних, розділеною комбінацією символів >>.

Приклад:

cin>>Quantity>>Price>>Discount;

Напишемо програму-ошуканця: програма пропонує пограти в числа, хто загадає більше число той і виграє програма є ошуканцем, оскільки до числа, введеного з клавіатури, додає одиницю, і тому завжди виграє.

// Прогамма-Ошуканець

#include <iostream.h>

void main()

{

// Запрошення "Давай пограємо!"

cout<<"Let's play!\n";

//Оголошення змінної i

int i;

//Запрошення "уведіть число"

cout<<"Enter a number: ";

//Уведення числа

cin>>i;

//Виведення числа, що "загадав комп'ютер"

cout<<"I have "<<i+1<<"\n";// Вивід результату гри

cout<<"I'm winner!\n";

}

Вивід даних

За допомогою команди cout<< ми можемо виводити на екран різні рядки.

Однак, компілятор зрозуміє таку команду тільки в тому випадку, якщо в заголовку програми є рядок #include <iostream.h>

Рядок, що ми хочемо вивести на екран використовуючи cout<<, обов'язково записуємо в лапки. Наприклад:

cout<<”тут пишемо те, що хочемо”;

Рядок з командою cout<< обов’язково закінчується символом “крапка з комою».

Команда cout<< не тільки виводить на екран рядки, але й дозволяє їх оформляти. Для оформлення виводу рядка використовують спеціальні керуючі символи. Ці керуючі символи називаються Escape-послідовностями. Деякі з них:

\b Видалення останнього виведеного символу

\n Перейти на початок нового рядка

\t Перейти до наступної позиції табуляції

\\ Вивести зворотну рису \

\" Вивести лапки “

cout<< допускає й такий запис:

cout<<” My name is”<<” - Ira\n ”;

cout<<”I'm from Odessa\n ”;

У результаті роботи цієї команди ми побачимо на екрані

My name is - Ira

I'm from Odessa

Практичний приклад використання cout<<

Напишемо програму, що виводить на екран коротке резюме про слухача Малої технічної академії Васютку Петра, який навчається в інституті ІКНІ, дата народження : 04.08.1994. Перш за все звернемо увагу на те, що для кращого розуміння програми використовується так званий коментар – один рядок, який не сприймається оброблювачем програми. Такі коментарі будемо позначати за допомогою косих рисок //.

// Заголовок

#include <iostream.h>

// Головна функція

void main()

// початок головної функції

{

// Наступна команда через 4 табуляції виводить текст Резюме і переведить вивід на наступний рядок

cout<<"\t\t\t\tРезюме\n";

// Виводить порожній рядок

cout<<"\n";

// Через 2 табуляції виводить текст Прізивще, і ще через 1 табуляцію Васютка

cout<<"\t\tПрізвище"<<"\tВасютка";

// У тому же рядку виводиться текст Дата народження: 04.08.1994

// і \n переводить вивід на наступний рядок

cout<<"\tДата народження: 04.08.1994\n";

// Виводить порожній рядок

cout<<"\n";

// Виводить інформацію про ім'я

cout<<"\t\tІмя"<<"Петро\n";

// Виводить порожній рядок

cout<<"\n";

// У цьому рядку інститут ІКНІ буде поданий в

// лапках

cout<<"\t\Інститут"<<" \"ІКНІ\"\n";

// Виводить порожній рядок

cout<<"\n";

}

2. Керуючі послідовності

Керуючі послідовності – це комбінація спеціальних символів, які використовуються для введення та виведення деяких даних. Керуюча послідовність складається із символу слеш «\» і спеціально означеного символу. Вони призначені для форматованого виведення на екран, наприклад, для переходу на новий рядок, подання звукового сигналу, а також для виведення на екран деяких спеціальних символів: апострофа, лапок тощо. Основні керуючі послідовності наведені у таблиці.

Символи керуючих послідовностей Призначення
\а , \7 Подати звуковий сигнал
\n Перейти на новий рядок.
\t Переведення курсора до наступної позиції табуляції
\\ Вивести символ \
\’ Вивести символ ‘
\” Вивести символ ”
\? Вивести символ ?

Керуючі послідовності разом з повідомленнями записуються у лапках після конструкції cout <<.

Розглянемо програму:
#include

#include
Void main()
{
Clrscr();
Cout<<”Привіт! \n”;
Cout<<”Я С++”;
Getch();
}
#include
#include
Void main()
{
Clrscr();
Cout<<”Привіт! \nЯ С++”;
Getch();
}

Результат роботи програми:

Привіт!
Я С++

Зауваження 1. Якщо використати послідовність, невизначену у мові С++ (наприклад, \u), то компілятор пропустить символ послідовності (похилу риску) і виведе на екран лише символ, записаний після риски (в нашому випадку літеру u).

Зауваження 2. Замість керуючої послідовності \n можна використати команду cout<.

Попередню програму з використанням команди endl можна переписати у таких виглядах:
#include

#include
Void main()

{
Clrscr();
Cout<<”Привіт! \n”;

Cout<<endl;

Cout<<”Я С++”;

Getch();
}
</endl;
#include
#include

Void main()

{
Clrscr();
Cout<<”Привіт! “<<endl;

Cout<<”Я С++”;

Getch();
}
</endl;
#include
#include
Void main()

{
Clrscr();
Cout<<”Привіт! “<<
Getch();}

Керуючі послідовності – це комбінація спеціальних символів, які використовуються для введення та виведення даних. Керуючі послідовності записуються разом з повідомленнями у лапках  конструкції cout<<.

Студент повинен

знати :

v Команди введення та виведення мов програмування С++ та С.

v Призначення керуючих послідовностей.

вміти :

v Використовувати команди введення та виведення при створенні програм на мовах програмування С++ та С.

v Використовувати керуючі послідості при написанні програм н\а мові програмування С++.

Питання для самоконтролю

1. Назвіть призначення команд введення та виведення.

2. Запишіть синтаксис команди введення мови програмування С++.

3. Запишіть синтаксис команди виведення мови програмування С++.

4. Дайте означення керуючої послідовності.

5. Перелічіть основні керуючі послідовності та їх призначення.

 Література

[1] c. 20-26, [3] c. 83-87, [4] c. 152-159.


1.5. Алгоритми виконання логічних операцій





































Питання для опрацювання

1. Види логічних операцій, які виконуються в комп’ютері.

2. Алгоритми виконання логічних операцій.

Методичні рекомендації

Під час вивчення даної теми студенти п овтор ять  матеріал з дисципліни «Комп’ютерна логіка», який стосується особливостей обчислення логічних функцій та опанують навики виконання цих операцій.

1. Види логічних операцій, які виконуються в комп’ютері.

Арифметико-логічний пристрій (АЛП) (англ. Arithmetic Logic Unit , ALU) — блок процесора, що служить для виконання арифметичних та логічних перетворень над даними, що іменуються операндами. Цей пристрій є фундаментальною частиною будь-якого обчислювача, навіть найпростіші мікроконтролери мають його в складі свого ядра. Центральний процесор та відеопроцесор можуть мати кілька АЛП, що відрізняються своїм функціональним призначенням або типом оброблюваних даних.

Концепція АЛП була запропонована математиком Джоном фон Нейманом в 1945 році. В той час він працював над новим комп'ютером — EDVAC (англ. Electronic Discrete Variable Computer). В його публікації була досить докладно розглянута структура обчислювальної системи, в якій знайшлося місце для арифметичного пристрою. Фон Нейман зазначав, що наявність цього компонента є гарантією того, що комп'ютер здатний виконувати базові математичні операції, серед яких додавання, віднімання, множення та ділення.

Дослідження АЛП залишається важливою частиною комп'ютерної науки, що підпадають під арифметичні і логічні структури в системі класифікації ACM.

Умовне графічне позначення мікросхеми К155ИП3

Арифметико-логічні пристрої можуть класифікуватися за багатьма ознаками, наприклад розглянемо наступну класифікацію:

За структурою

· з розподіленою логікою (з закріпленими мікроопераціями);

· з зосередженою логікою (з загальними мікроопераціями).

В першому випадку, апаратура для реалізації обчислень закріплена за регістрами та розділена між ними, тобто кожен з них використовує власну логіку для виконання операцій. У пристроях другого типу вся апаратура об'єднана в АЛП, а всі регістри — в регістровому файлі.

АЛП другого типу також можна класифікувати.

За типом запису даних

· послідовні;

· паралельні;

· послідовно-паралельні.

В основу цієї класифікації покладено особливості роботи цифрового регістра.


Поделиться:



Последнее изменение этой страницы: 2019-04-19; Просмотров: 400; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.125 с.)
Главная | Случайная страница | Обратная связь