загрузка...
загрузка...
На головну

Глава 5. Подання даних в пам'яті ЕОМ

  1. I Реалізація простих і складних запитів до бази даних
  2. II. Початкове фундаментальне уявлення: діяльність - система
  3. III. Робота з функціями Бази даних
  4. III. Етап кількісного та якісного аналізу даних
  5. Iquest; Використання панелі інструментів Бази даних та Запиту в режимі таблиці
  6. Iquest; Створення таблиць шляхом введення даних в таблицю
  7. IV. Етап інтерпретації даних

5.1 Проблеми представлення даних

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

Якщо для побудови ЕОМ обрана десяткова система числення, то таких станів має бути десять. Для восьмеричної системи числення таких станів має бути 8, для шестнадцатеричной - 16 і т. Д. Число станів завжди має дорівнювати основи системи числення.

Природно, така кількість станів викликає труднощі при їх реалізації.

В середині сорокових років минулого століття група математиків, в яку входив і фон Нейман, запропонувала використовувати для представлення інформації в ЕОМ двійкову систему числення.

Для двійкової системи числення стійких станів повинно бути два (грубо кажучи - вимикач включений (цього стану логічно відповідає 1) і вимикач вимкнений (цього стану логічно відповідає 0).

Цілком очевидно, що найбільш простими з точки зору технічної реалізації є так звані двохпозиційні елементи, здатні перебувати в одному з двох стійких станів, наприклад: електромагнітне реле замкнуто або розімкнуте, феромагнітна поверхню намагнічена або розмагнічена і т. Д.

Простота технічної реалізації двохпозиційних елементів забезпечила найбільшого поширення в ЕОМ двійкової системи числення.

Крім того, в інформатиці використовується також восьмерична і шістнадцяткова системи числення. Підстави цих систем відповідають цілим ступенями 2, тому для них виключно прості правила перекладу в двійкову систему числення і навпаки.

Будь-яка інформація може надаватися в ЕОМ у вигляді двійкових кодів. Окремі елементи двійкового коду, які беруть значення 0 або 1 називаються розрядами або бітами.

               
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
n                
 

Зберігає інформацію блок машини званої пам'яттю. Умовно блок пам'яті зобразимо прямокутником. Пам'ять поділяється на байти. Найменшою неподільною одиницею інформації, якою можна привласнити адресу є байт (в сучасних ЕОМ під байт відводять 8 розрядів). Номери починаються з нуля і закінчуються деяким числом «n». Значення n залежить від типу ЕОМ.

Пам'ять зберігає:

n дані (так звана область даних)

n програми (область програм)

n службову інформацію (вона називається системної, і область також називається системною, таких областей в пам'яті дві).

Пам'ять «починається» системної областю та «закінчується» системної областю.

Отже, пам'ять поділяється на осередки (розрядні сітки) звернутися до яких можна за їхніми адресами.

Кожен байт пам'яті підрозділяється на розряди або біти.

Умовно розрядну сітку можна зобразити у вигляді вузького прямокутника з розподілами для розрядів (бітів).

M            
     ..............  

розрядна сітка

Кожному розряду (біту) відповідає один фізичний елемент. Логічно це 1, або 0.

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

поняття типу даних носить двоїстий характер. З точки зору розмірності мікропроцесор апаратно підтримує наступні основні типи даних:

байт - Вісім послідовно розташованих бітів, пронумерованих від 0 до 7, при цьому біт 0 є наймолодшим значущим бітом.

подвійний байт (слово в 16/32-бітної архітектури) - послідовність з двох байт, що мають послідовні адреси. Розмір слова - 16 біт; біти в слові нумеруються від 0 до 15. Байт, що містить нульовий біт, називається молодшим байтом, а байт, що містить 15-й біт - старшим байтом. Мікропроцесори Intel мають важливу особливість - молодший байт завжди зберігається за меншою адресою. Адресою подвійного байта вважається адреса його молодшого байта. Адреса старшого байта може бути використаний для доступу до старшої половині подвійного байта.

півслова - послідовність з чотирьох байт (32 біта), розташованих по послідовним адресами. Нумерація цих біт виробляється від 0 до 31. Подвійний байт, що містить нульовий біт, називається молодшим подвійним байтом, а подвійний байт, що містить 31-й біт - старшим подвійним байтом. Молодший подвійний байт зберігається за меншою адресою. адресою півслова вважається адреса його молодшого байта. Адреса старшого подвійного байта може бути використаний для доступу до старшої половини півслова.

слово (Тип, резрядность якого відповідає розрядності архітектури) - послідовність з восьми байт, що мають послідовні адреси. Розмір слова - 64 біта; біти в слові нумеруються від 0 до 63. півслова, що містить нульовий біт, називається молодшим півсловом, а півслова, що містить 63-й біт - старшим півсловом. Мікропроцесори Intel мають важливу особливість - молодше півслова завжди зберігається за меншою адресою. адресою слова вважається адреса його молодшого байта. Адреса старшого півслова може бути використаний для доступу до старшої половини слова.

подвійне слово - послідовність з шістнадцяти байт (128 біт), розташованих по послідовним адресами. Нумерація цих біт виробляється від 0 до 127. Слово, що містить нульовий біт, називається молодшим словом, а слово, що містить 127-й біт, - старшим словом. Молодше слово зберігається за меншою адресою. Адресою подвійного слова вважається адреса його молодшого слова. Адреса старшого слова може бути використаний для доступу до старшої половині подвійного слова.

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

Цілий тип без знака - Бінарне значення без знака, розміром 8, 16, 32, 64 або 128біт.

  • байт - від 0 до 255;
  • два байта - від 0 до 65 535;
  • півслова - від 0 до 232-1;
  • слово - від 0 до 264-1;
  • подвійне слово - від 0 до 2128-1.

Цілий тип зі знаком - Бінарне значення зі знаком, розміром 8, 16, 32, 64 або 128біт. Знак в цьому довічним числі міститься в старшому бите.

Числові діапазони для цього типу даних наступні:

  • 8-розрядний ціле - від -128 до +127;
  • 16-розрядний ціле - від -32 768 до +32 767;
  • 32-розрядний ціле - від -231 до +231 - 1;
  • 64-розрядний ціле - від -263 до +263 - 1;
  • 128-розрядне ціле - від -2127 до +2127 - 1.

дійсний тип кодує дійсне число в експоненційної формі:

Закодоване число обчислюється за формулою:

N = мантиса · 2 порядок;

  • 32-розрядний дійсне - від 3,4 · 10-38 до 3,4 · 1038;
  • 64-розрядний дійсне - від 1,7 · 10-308 до 1,7 · 10308;
  • 80-розрядний дійсне - від 3,4 · 10-4932 до 1,1 · 104932.

Слід зазначити, що крім розрядності, певною типом процесора необхідно враховувати і мову програмування (конкретно можливості компілятора). Наприклад, мова програмування Турбо Паскаль підтримує тип даних real, для цього типу даних відведено 48 розрядів.

Повторимо, що мінімальної адресується одиницею інформації, що обробляється в ЕОМ, є байт. Байт складається з восьми двійкових розрядів.

Розглянемо докладно уявлення чисел в пам'яті ЕОМ.

5.2 Форми представлення чисел в ЕОМ.

Для представлення чисел в ЕОМ застосовуються дві різні форми: з фіксованою точкою (коми) - для цілих чисел і з плаваючою точкою (коми) для дійсних чисел.

Цілі числа можуть бути представлені зі знаком і без знака.

Візьмемо розрядну сітку з 8 біт (т. Е. Байт) і спробуємо розібратися, як представляються цілі числа без знака. Найменше число, яке можна помістити в один байт без знака - це нуль.

Число 0 без знака.

Найбільше число, яке можна представити в одному байті без знака - це (в двійковому вигляді) 111111112

Переведемо це число в десяткову систему числення (для простоти рахунку переведемо спочатку в 8-ву).

Отже, в один байт без знака можна помістити максимальне десяткове число 255.

Аналогічно можна обчислити максимальне число, яке можна помістити в два байта (т. Е. 16 біт).

11111111111111112= 6553510.

Для чисел зі знаком найлівіший розряд відводиться під знак. Для позитивного числа цей розряд дорівнює 0, для негативного - 1.

Число +12 в 8-бітної розрядної сітці буде записано таким чином: 1210= 11002.

Знак '+'

Зверніть увагу на розташування чисел в розрядної сітці: між знаковим розрядом і першим значущим розрядом числа розташовуються нулі.

Обчислимо максимальне позитивне число, яке міститься в 8 біт зі знаком, т. Е. Під число відводиться 7 біт.

знак

11111112= 1778= 1.82+7.81+1.80= 64 + 56 = 127.

Тепер обчислимо максимальне позитивне число, яке міститься в 16-ти розрядну сітку зі знаком.

знак

1111111111111112= 7FFF16= 716.163+ F16.161+ F16.161+ F16.160= 7.163+15.162+15.161+15.1 = 32767.

Подання негативних чисел істотно відрізняється від уявлення позитивних чисел. Попередньо розглянемо деякі поняття, а саме введемо визначення прямого, зворотного і додаткового кодів.

5.3 Прямий, зворотний і додатковий коди.

1) Позитивні числа.

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

Прямий код Xпр двійкового числа X містить виконавчі цифрові розряди, зліва записується знак числа.

Приклад.

Розмістити у розрядної сітці з восьми розрядів позитивне число 97.

9710= 11000012.

Це ж число розмістимо в розрядної сітці з 16 розрядів.

2) Негативні числа.

Негативні числа зберігаються в пам'яті ЕОМ або в зворотному, або в додатковому кодах.

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

Запишемо число -4 в зворотному коді в 8-ми розрядної сітці. Двійковий код модуля вихідного числа дорівнює 1002. Зворотний код виходить інверсією кожного розряду двійкового коду модуля вихідного числа, записаного в 8-ми розрядну сітку.

Двійковий код модуля вихідного числа дорівнює 00000100. Виконаємо інверсію кожного розряду.

Зворотний код числа -4 записується в такий спосіб:

знаковий розряд

Додатковий код Xдоп негативного числа X виходить з зворотного коду Xобр шляхом додавання одиниці до самого правого розряду (він називається молодшим).

Отже, Xдоп= Xобр + 00000001, т. Е.

1
 (Знак. Розряд)            

(Додавання виробляємо в двійковій системі числення 12+12= 102)

1 1 1 1 1 1 0 0

2726252423222120

Тепер наведемо отримане число в десяткову систему числення

128 + 64 + 32 + 16 + 8 + 4 = 252

Ми отримали, що додатковий код числа -4 в десятковій системі числення дорівнює 252. Складемо e-4e + 252 = 256. 256 = 28. Кількість розрядів сітки дорівнювало 8. Число 252 «доповнило» число c-4c до 28 = 1000000010.

Тепер складемо два довічних числа - двійковий код числа c-4c в 8-розрядної сітці і додатковий код числа -4:

 11111100

 1 000000002 ми отримали 28

Запишемо загальне правило отримання додаткового коду деякого цілого числа х.

 x, x> = 0

Xдоп =

2k - | X |, x <0, де k - кількість розрядів сітки.

Є ще одне дуже просте правило отримання додаткового коду деякого негативного числа.

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

00000 100 прямий код c-4c

11111 100

інверсія розрядів

Визначимо найменший негативний число, яке можна покласти в один байт зі знаком. Прямий код такого числа дорівнює -1111111. Самий лівий розряд відведено під знак числа. Знайдемо додатковий код числа А. Адоп = 10000000.

Отже, найменше негативне число, яке можна записати в 8-ми розрядної сітці - 27 = -128. Міркуючи таким же чином, отримаємо, що для 16-ти розрядної сітки найменше негативне число дорівнює 215 або-32768.

Прямий, зворотний і додатковий коди введені для спрощення операції віднімання (або алгебраїчного додавання). За допомогою зворотного і додаткового кодів операція віднімання зводиться до операції арифметичного додавання. При цьому операнди представляються або в зворотному, або в додатковому коді. Розглянемо конкретні приклади. Для спрощення будемо розглядати Чотирирозрядний сітку.

а) Обчислити х-у, де х = + 6, у = -3, при цьому результат є позитивним числом.

Х-у = 6 + (- 3)

хпр= хобр= хдоп= 0.110; уобр= 1.100; удоп= 1.101

Додавання в зворотних кодах:

хпр= 0.110

+

уобр= 1.100

10.010

+

_____1

0.011

В даному випадку одиниця, яка помістилися в розрядну сітку (одиниця переносу зі знакового розряду), циклічно додається до правого розряду суми кодів. Відповіддю є позитивне двійкове число 0.0112= 310.

Додавання в додаткових кодах:

Хпр= 0.100

+

удоп= 1.101

10.011

?

__________

0.011

При додаванні в додаткових кодах ліва одиниця, яка вийшла за межі розрядної сітки відкидається. Результатом є позитивне число 310.

б) Розглянемо другий випадок: числа мають різні знаки, але в результаті отримуємо негативне число.

х = -610= -1102 і у = + 310= + 0112.

Хобр= 1.001, хдоп= 1.010, упр= уобр= удоп= 0.011.

Додавання в зворотних кодах:

хобр= 1.001

+

упр= 0.011

1.100

В даному випадку отриманий зворотний код алгебраїчної суми, необхідно перейти від зворотного коду до прямого:

(Х + у)обр= 1.100, отже, (х + у)пр= -0112= -310(Одиниця в знаковому розряді дає мінус, все решта розряди інвертується).

Додавання в додаткових кодах:

Хдоп= 1.010

+

упр= 0.011

1.101

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

(1.101)доп ® (1.100)обр ® -0112= -310.

в) Третій випадок: обидва числа негативні.

Х = -6 = -1102, У = -3 = -0112.

Хобр= 1.001, хдоп= 1.010,

Уобр= 1.100, удоп= 1.101.

Розглянемо алгебраїчне додавання в додаткових кодах:

1.010

+

1.101

10.111

В даному випадку має місце так зване негативне переповнення, так як виник перенос тільки з знакового розряду суми. Отже, результат вийшов негативний і перевищує гранично допустиме значення для даної розрядної сітки. Зрушимо отриманий результат на 1 розряд вправо, тоді (х + у)доп= (1.0111)доп. Перейдемо від додаткового коду до прямого:

(1.0111)доп ® (1.0110)обр ® (1.1001)пр = -910.

Слід зазначити, що в процесі виконання розрахунків на ЕОМ може утворитися як «позитивний», так і «негативний» нуль, причому тільки в додатковому коді він має єдине подання. дійсно,

(+0)пр= 0.00 ... 00; (-0)пр = 1.00 ... 00,

в зворотному коді

(+0)обр= 0.00 ... 00; (-0)обр = 1.11 ... 11,

в додатковому коді

(+0)доп= 0.00 ... 00; (-0)доп = 0.00 ... 00.

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

З цих причин в ЕОМ для представлення негативних чисел частіше використовується додатковий код.

І останнє дуже суттєве зауваження:

При додаванні може виникнути ситуація, коли старший розряд суми не поміщається в відведеної під результат розрядної сітці і він «захоплює» знаковий розряд, природно значення суми спотворюється.

Приклад. Нехай дана 4-х розрядна сітка зі знаком, в якій повинен розміститися результат від підсумовування двох позитивних чисел х = 5 і у = 7.

хпр = 0.101, упр = 0.111

0.101

+

0.111

1.100

Так як знаковий розряд дорівнює одиниці, то результат сприймається як додатковий код і, якщо спробувати вивести значення суми, припустимо на екран, процесор перейде до прямого коду:

(1.100)доп ® (1.011)обр ® -1002= -410.

Подивимося, що вийде, якщо під результат відвести шість розрядів:

0.00101

+

0.00111

0.01100

(Х + у)пр= (0.01100)пр= + 12.

Сума двох чисел обчислена вірно.

виконати самостійно:

1. Знайти додаткові коди для чисел: -45, 123, -98, -А516, -111, -778. Формат представлення даних один байт зі знаком.

2. Знайти додаткові коди для чисел: -11100018, 234, -456, -АС0916, -32324, СС7816, -110012,. Формат представлення даних два байта зі знаком.

5.4 Подання чисел з плаваючою точкою.

Математична запис числа дві цілих чотири сотих виглядає так 2,04 але можлива і така запис 0,204 ? 10, або така 20,4 ? 10-1, Або така 0,0204 ? 102... Цей ряд можна продовжувати як завгодно довго. На що ви звернули увагу? - Кома переміщається ( «плаває») вліво або вправо, і, щоб не змінити значення числа, ми множимо його на 10 в негативній або позитивній ступеня.

Для подання дійсних чисел у пам'яті ЕОМ використовується формат з плаваючою точкою. При цьому необхідно пам'ятати, що система дійсних чисел представимо в ЕОМ є дискретною і кінцевої.

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

m - будемо називати мантиссой числа (модуль цілої частини мантиси змінюється в діапазоні від 1 до S-1 (включаючи ці числа), де S- підставу системи числення),

p - цілочисельний порядок,

S ? підставу системи числення.

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

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

Дійсне число в ПЕОМ представлено в експоненційної формі.

Отже, при поданні чисел з плаваючою точкою необхідно записати в розрядної сітці ЕОМ зі своїми знаками мантиссу  і порядок  . Знак числа при цьому збігається зі знаком мантиси. Запишемо число 314.6789 в експоненційної формі: 314.6789 = 3.1467890000E + 2. Число розрядів, виділених для зображення порядків, визначає діапазон представимо в ЕОМ чисел з плаваючою точкою.

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

Значення довільного числа дійсного типу представляється в ПЕОМ лише з деякою кінцевою точністю, яка залежить від внутрішнього формату дійсного числа, точність представлення чисел підвищується зі збільшенням числа розрядів мантиси.

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

Десяткова точка мається на увазі перед лівим (старшим) розрядом мантиси, але при діях з числом її положення зміщується вліво або вправо в залежності від довічного порядку.

Розглянемо подання чисел в розрядної сітці довжиною 4 байта (так звана одинарна точність) для ПЕОМ типу РС. Зобразимо розрядну сітку, що складається з 32 розрядів і подивимося, як ці розряди розподілені.

0 1 2 3 4 5 6 7 8 ... 31

                 ...

знак мантиси порядок мантиса

Нехай необхідно представити число -13,75 в розрядної сітці з одинарної точністю. Для цього необхідно виконати наступні дії:

1. перевести число в двійкову систему числення;

2. уявити його в експоненційної формі;

3. отримати вихідний порядок і мантиссу;

4. отримати зміщений порядок.

1) 13.7510= 1101.112

75/100 = 3/4 = 3/22= 0.112

2) Уявімо двійковечисло 1101.11 в експоненційної формі 1101.11 = 1.10111E + 3.

3) Вихідний порядок дорівнює 3.

Слід зазначити, що ціла частина двійкового числа представленого в експоненційної формі, завжди дорівнює 1, тому з метою економії розрядів (а отже збільшення діапазону представлення чисел) Ціла частина цифри не записується в розрядну сітку.

4) Обчислимо зміщений порядок (в форматі з одинарної точністю до вихідного порядку додається число 127)

Pсм = 3 + 127 = 130 = 128 + 2 = 27+ 2 = 100000002+ 102 = 1000 00102

Рсм = 100000102

Мантиса = .101112

Знак числа позитивний, отже, самий лівий розряд дорівнює 0.

0 10000010 +10111000000000000000000

знак порядок мантиса

представимо отримане число в шістнадцятковій системі числення

0100 0001 0101 1100 0000 0000 0000 0000

Отже, ми отримали шістнадцяткове число 415С0000.

Вирішимо зворотний завдання.

Значення змінної А Представлено в форматі з плаваючою точкою в шістнадцятковій системі числення А = ВЕ200000. Тип змінної А-single для мови Паскаль. Знайти десяткове значення змінної А.

Для розв'язання оберненої задачі необхідно виконати наступні дії:

1) Провести шістнадцяткове число в двійкову систему числення.

2) Виділити знак мантиси (знак мантиси збігається зі знаком числа).

3) Виділити зміщений порядок.

4) Обчислити вихідний порядок.

5) Записати число, не забувши вказати його цілу частину, в експоненційної формі.

6) Провести число з експоненційної форми в звичайну форму записи.

7) Перевести число з двійкової системи числення в десяткову.

Виконаємо перераховані дії.

ВЕ200000 = 1011 1110 0010 0 ... 0000

1 01111100 0100 ... 0

знак порядок мантиса

Число негативне так як лівий розряд дорівнює 1.

Обчислимо вихідний порядок:

Р = Р-127 = 1111100-127 = 124-127 = -3.

Запишемо шукане число в експоненційної формі в двійковій системі числення:

А = -1.01Е-3. Не забувайте вказувати цілу частину.

Уявімо шукане число в звичайній формі запису в двійковій системі числення:

А = -1.01Е-3 = -0.001012= -0.2816= -0.15625.

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

У процесі зсуву мантиси меншого доданку відбувається втрата молодших розрядів, що вносить певну похибку в результат виконання даної операції.

Після вирівнювання порядків проводиться алгебраїчне складання мантисс.

Підіб'ємо деякі підсумки за поданням числової інформації в пам'яті ЕОМ.

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

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

Інша справа - речові числа. Речові числа утворюють безперервне безліч. У пам'яті ЕОМ речові числа замінюються їх кодами, які утворюють кінцеве дискретне безліч, тому:

· Строгі відносини між числами безперервного безлічі перетворюються в несуворі для їх комп'ютерних кодів;

· Результати обчислень містять неминучу похибку, тому що код дійсного числа в пам'яті ЕОМ є приблизними представником багатьох чисел з інтервалу, оцінка похибки самостійна і далеко не тривіальна задача;

· Поряд з поняттям найбільшого дійсного числа з'являється поняття найменшого числа або машинного нуля. Конкретне значення числа, яке сприймається в обчислювальній машині як машинний нуль, залежить від типу даних використовуваних в тій чи іншій мові програмування.

Виконати самостійно:

1) Знайти уявлення десяткового числа А в шістнадцятковій системі числення в форматі з плаваючою точкою. Тип числа single.

А = -357.2265626; А = -0.203125; А = 998.46875;

А = -657.4375; А = 998.8125; А = -905,34375; А = 897.5625

А = 637.65625; А = 56.53125; А = -4.78125.

2) Значення змінної А представлено в форматі з плаваючою точкою в шістнадцятковій системі числення. Тип змінної А-single для мови Паскаль. Знайти десяткове значення змінної А.

А = C455C200; A = 43D09400; A = 443F9000; A = C2FF8000;

А = 44071С00; A = 435D2000; А = C401F000; А = С403ЕС00;

A = C3D87400; A = C3D40000; A = C411FA00; A = 3F700000.

5.5 Кодування текстової та графічної інформації.

Теорія кодування інформації є одним з розділів теоретичної інформатики. У завдання даного курсу не входять питання теорії кодування. Коротко і спрощено розглянемо кодування текстової та графічної інформації.

Кодування текстової інформації.

Кодування текстової інформації полягає в тому, що кожному текстовому символу ставиться у відповідність код - ціле позитивне число. Залежно від числа розрядів, відведених під кодування символів, всі види кодувань діляться на дві групи: 8 - розрядні і 16 - розрядні. Для кожного виду кодування символи разом з їх кодами утворюють кодировочная таблицю. У кодувальної таблиці перша половина кодів відводиться під кодування керуючих символів, а також цифр і букв англійського алфавіту. Частина, що залишилася під кодування символів національного алфавіту.

До 8 - розрядних кодувань, що включає в себе систему кодування символів російського алфавіту, відносяться: ASCII, ДКОИ-8, Win 1251.

16 - розрядна кодування Unicode дозволяє представити 216 різних символів. У кодової таблиці Unicode присутні символи всіх сучасних національних мов. Символи перших 128 кодів збігаються з таблицею кодів ASCII.

Кодування зображень.

Розглянемо растрове кодування зображень.

Введемо позначення:

К - кількість різних кольорів, які використовуються при кодуванні зображення;

n - кількість бітів, необхідне для кодування кольору однієї точки зображення. До і n пов'язані наступним чином:

К = 2n.

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

n = log2K

Кількість бітів, необхідне для зберігання однієї точки зображення, називається глибиною кольору.

Забарвлення однієї точки екрану формується за допомогою трьох базових кольорів: червоного, зеленого, синього. Ці три кольори є основою моделі RGB. З їх допомогою можна отримати 23 різних квітів. В даному випадку для кодування кожного з трьох базових кольорів досить одного біта. Однак кожен базовий колір характеризується не тільки його наявністю, а й інтенсивністю. Яскравість кожного кольору кодується восьмирозрядним двійковим числом, т. Е. Глибина кольору дорівнює 8. Отже, число відтінків одного базового кольору дорівнює 28. Це означає, що з трьох базових кольорів можна отримати (256)3 =

16 777 216 кольорів і їх відтінків. Інформація про кожному пікселі в відеопам'яті займе

n = 8 ? 3 = 24 біта = 3 байта.

Таким чином, для зберігання одного образу екрана буде потрібно обсяг пам'яті, що дорівнює добутку ширини екрану на висоту екрану і на глибину кольору. Ширина і висота задаються в пікселах.

У загальному випадку обсяг пам'яті, необхідний для зберігання растрових зображень, розраховується за формулою:

V = W ? H ? n (бітів),

де W - ширина зображення в точках;

H - висота зображення в точках;

V - об'єм пам'яті, необхідний для зберігання растрових зображень.

 




ЕОМ - програмно-керований цифровий автомат. | Коротка історія розвитку ЕОМ | перше покоління | друге покоління | третє покоління | четверте покоління | Глава 3. Алгоритми. Алгоритмізація | Математична форма завдання алгоритму. | Глава 4. Арифметичні основи ЕОМ. | Двійковій-восьмерична система числення. |

загрузка...
© um.co.ua - учбові матеріали та реферати