Представлення в пам’яті комп’ютера цілих та дійсних типів даних

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2011
Тип роботи:
Лабораторна робота
Предмет:
Інші
Група:
КІ

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” / Кафедра ЕОМ Лабораторна робота № 1 "Представлення в пам’яті комп’ютера цілих та дійсних типів даних" Виконав ст. гр. КІ-21 Сможаник Л. І. Принав старший викладач Матвійчук Т. А. Львів – 2011 Мета роботи Дослідження внутрішнього представлення в пам’яті комп’ютера базових типів даних статичної структури. Постановка задачі І. Дослідити внутрішнє представлення в пам’яті комп’ютера цілих та дійсних типів даних. Розглянути наступні базові типи даних: int i1 , і2; float f1 , f2; ІІ. Тестування провести для таких значень змінних: i1 =83; i2 = i1 * (–5)=−415; f1=109.1111; f2 = f1*(–2)=−218.222; Система тестів Представлення змінної і1: 8310=5316 Отже: 8310=5316= 0000 0000 0000 0000 0000 0000 0101 0011 2 В пам’яті комп’ютера буде відображатись наступним чином: 53 00 00 00. Представлення змінної і2: −41510=−19F16 Переведення в доповняльний код: 0000 0000 0000 0000 0000 0001 1001 1111 1111 1111 1111 1111 1111 1110 0110 0000 + 1 1111 1111 1111 1111 1111 1110 0110 0001 1111 1111 1111 1111 1111 1110 0110 00012= FF FF FE 6116 Отже: −41510=−19F16 => 1111 1111 1111 1111 1111 1110 0110 00012 В пам’яті комп’ютера буде відображатись наступним чином: 61 FE FF FF. Представлення змінної f1. Перевід цілої частини: 10910=6D16 Перевід дробової частини: 0, 111 * 16 =1,776 0, 776 * 16 = 12,416 (1210 = C16) 0, 416 * 16 = 6,656 0, 656 * 16 = 10,496 (1010 = A16) 0,496 * 16= 7,936  => 0, 111 10 = 0,1C6A716   Отже: 109,11110 = 6D,1C6A7 16 = 0110 1101, 0001 1100 0110 1010 01112 Нормалізація: 01,10 1101 0001 1100 0110 1010 01112* 100110 Заокруглення: 1, 10 1101 0001 1100 0110 1010 0│111 + 1 1, 10 1101 0001 1100 0110 1010 1 Визначення мантиси: m=10 1101 0001 1100 0110 1010 1 Визначення зміщеного порядку: е = 12710 + 610 = 133 10 = 85 16 = 1000 0101 2 В 16- ковій системі числення: 0100 0010 1101 1010 0011 1000 1101 01012= 42 DA 38 D516 В пам’яті комп’ютера буде відображатись наступним чином: D5 38 DA 42. Представлення змінної f2: Перевід цілої частини: −21810=−DA16 Перевід дробової частини: 0, 222 * 16 =3,552 0, 552 * 16 = 8,832 0, 832 * 16 = 13,312 (1310 = D16) 0, 312 * 16 = 4,992 0,992 * 16 = 15,872 (1510 = F16)  => 0,222 10 = 0,38D4F16   Отже: −218,22210 = −DA,38D4F16 У 2-вій системі числення це число матиме вигляд: 1101 1010,0011 1000 1101 0100 11112 Нормалізація: 1,101 10100011 1000 1101 0100 11112 * 100111 Заокруглення: 1,101 10100011 1000 1101 0100 │1111 + 1 1,101 10100011 1000 1101 0101 Визначення мантиси: m=101 10100011 1000 1101 0101 Визначення зміщеного порядку: е = 12710 + 710 = 134 10 = 86 16 = 1000 0110 2 16- ковій системі числення:1100 0011 0101 1010 0011 1000 1101 01012= C3 5A 38 D416 В пам’яті комп’ютера буде відображатись наступним чином: D4 38 5A C3. Алгоритм розв’язання задачі На цій лабораторній роботі ми повинні показати представлення в пам’яті комп’ютера цілих та дійсних типів даних,з якими працює наша програма. Алгоритм полягає у впорядкованому зчитуванні байтів збережених у памяті комп’ютера, за допомогою вказівників та посилань. Для рикладу роглянем тип float: В пам'яті комп'ютера змінна типу float займає 4 байти, в яких один біт виділяється під знак, 8 – під порядок, 23 – під мантису. Переводим цілу і дробову частини частини: 10910=6D16 0, 111 * 16 =1,776 0, 776 * 16 = 12,416 (1210 = C16) 0, 416 * 16 = 6,656 0, 656 * 16 = 10,496 (1010 = A16) 0,496 * 16= 7,936  => 0, 111 10 = 0,1C6A716   Отже: 109,11110 = 6D,1C6A7 16 = 0110 1101, 0001 1100 0110 1010 01112 Робиться нормалізація: 01,10 1101 0001 1100 0110 1010 01112* 100110 Заокруглення: 1, 10 1101 0001 1100 0110 1010 0│111 + 1 1, 10 1101 0001 1100 0110 1010 1 Визначається мантиса: m=10 1101 0001 1100 0110 1010 1 Визначається зміщений порядок: е = 12710 + 610 = 133 10 = 85 16 = 1000 0101 2 В 16- ковій системі числення: 0100 0010 1101 1010 0011 1000 1101 01012= 42 DA 38 D516 А в пам’яті комп’ютера буде відображатись наступним чином: D5 38 DA 42. Код програми яка це реалізує: #include<stdio.h> #include<conio.h> int main (void) { float f1=109.111; unsigned char *vf1=(unsigned char *)(&f1); for (int i=0; i<sizeof(f1); i++) printf("%02X ", vf1[i]); printf("\n\n"); getch(); return 0; } Результати виконання програми. / Висновок. У цій лабораторній роботі ми розглядали представлення даних у пам’яті комп’ютера на прикладі типу int та float і з’ясували що вони представлені у 16-ій або 2-ій системах числення. В залежності від типу відводиться відповідна пам'ять у байтах. У кожному біті байта зберігається певна інформація числа.
Антиботан аватар за замовчуванням

18.11.2012 16:11-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!