DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

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

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

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

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

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

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” / Кафедра ЕОМ Лабораторна робота № 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:52

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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