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

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

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

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

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

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” / Кафедра ЕОМ "Представлення в пам’яті комп’ютера цілих та дійсних типів даних" лабораторна робота № 1 з дисципліни " Програмування. Частина III. Структури даних та алгоритми " 1.МЕТА РОБОТИ Дослідження внутрішнього представлення в пам’яті комп’ютера базових типів даних статичної структури. 2.ІНДИВІДУАЛЬНЕ ЗАВДАННЯ НА ЛАБОРАТОРНУ РОБОТУ Дослідити внутрішнє представлення в пам’яті комп’ютера цілих та дійсних типів даних. Розглянути наступні базові типи даних: int i1 , і2; float f1 , f2; i1 = 75; і2 = -375; f1=117.116 ; f2 = -234.232; 3.Алгоритм розв’язання задачі. Ми повинні показати представлення в пам’яті комп’ютера цілих та дійсних типів даних, з якими оперує наша програма. Алгоритм полягає в впорядкованому зчитуванні байтів збережених у памяті комп’ютера, за допомогою вказівників та посилань. В па’мяті комп’ютера змінна типу float займає 4 байти, в яких один біт виділяється під знак, 8- під порядок,23- під мантису. 4.Система тестів 4.1 Додатнє число 75 типу int в пам'яті комп’ютера зберігається в прямому двійковому коді і займає 4 байти:  0000 0000 0000 0000 0000 0000 0100 1011 В пам’яті комп’ютера цілі числа зберігаються у зворотному порядку розміщення байт числа: 0100 1011 0000 0000 0000 0000 0000 0000 Результат в 16-ковій системі числення: 4B 00 00 00. 4.2 Від'ємне число -375 типу long int в пам'яті комп’ютера зберігається в доповняльному двійковому коді і займає 4 байти: - 37510 = -17716 = - 2 0000 0000 0000 0000 0000 0001 0111 0111 - прямий код; 1111 1111 1111 1111 1111 1110 1000 1000 - обернений код; + 1 1111 1111 1111 1111 1111 1110 1000 1001 - доповняльний код; F F F F F E 8 9 - в 16- ковій системі числення В пам’яті комп’ютера зберігається у зворотному порядку розміщення байт числа: 1001 1000 1110 1111 1111 1111 1111 1111 Результат в 16- ковій системі числення: 89 FE FF FF. 4.3 Розглянемо, як в пам'яті комп’ютера зберігається додатнє число 117,116 типу float . Перевід цілої частини: 117/16=7 остача 5 7/16=0 остача 7 => 117 10 =75 16 Перевід дробової частини: 0, 116 * 16 = 1,856 0, 856 * 16 = 13,696 (1310 = D16) 0, 696 * 16 = 11,136 (1110 = B16) 0, 136 * 16 = 2,176 0,176 * 16 = 2,816  => 0,116 10 = 0,1DB22 16   Отже: 117,116 10 = 75, 1DB22 16 = 0111 0101, 0001 1101 1011 0010 0010 2 Нормалізація: 01,11 0101 0001 1101 1011 0010 0010 2 * 100110 Заокруглення: 1,11 0101 0001 1101 1011 0010 0│01 + 0 1,11 0101 0001 1101 1011 0010 0 Визначення мантиси: m=11 0101 0001 1101 1011 0010 0 Визначення зміщеного порядку: е = 12710 + 610 = 133 10 = 85 16 = 1000 0101 2 Визначення знакового розряду: s=0 (бо число додатнє). Схема внутрішнього представлення: s  e  m  1 біт  8 біт  23 біт  Зборка за схемою: s e m  0 1000 0101 110 1010 0011 1011 0110 0100   В 16- ковій системі 0100 0010 1110 1010 0011 1011 0110 01002=42 EA3B 64 16 В пам’яті комп’ютера буде зберігатися у зворотному порядку розміщення байт числа: 0110 0100 0011 1011 1110 1010 0100 0010 Результат в 16- ковій системі числення: 64 3B EA 42 4.4 Представлення змінної f2: f2=-234.232 Перевід цілої частини: -23410=-EA16 Перевід дробової частини: 0, 232 * 16 =3,712 0, 712 * 16 = 11,392 (1110 = B16) 0, 392 * 16 = 6,272 0, 272 * 16 = 4,352 0,352 * 16 = 5,96  => 0.232 10 = 0,3B645 16   Отже: -234.23210 = -EA, 3B64516 = 1110 1010,0011 1011 0110 0100 01012 Нормалізація: 1,110 1010 0011 1011 0110 0100 01012* 100111 Заокруглення: 1,110 1010 0011 1011 0110 0100 │01 + 0 1,110 1010 0011 1011 0110 0100 Визначення мантиси: m=110 1010 0011 1011 0110 0100 Визначення зміщеного порядку: е = 12710 + 710 = 134 10 = 86 16 = 1000 0110 2 Визначення знакового розряду: s=1 Схема внутрішнього представлення: s  e  m  1 біт  8 біт  23 біт   Зборка за схемою: s e m  1 1000 0110 110 1010 0011 1011 0110 0100   В 16- ковій системі: 1100 0011 0110 1010 0011 1011 0110 0100= С36A3B6416 В пам’яті комп’ютера буде відображатись наступним чином: 64 3B 6A C3 5.Результати виконання програми. / Висновки: Під час виконання даної лабораторної роботи ми спостерігали представлення даних у памяті комп’ютера, написали програмну реалізацію, яка допомагає спостерігати за зберіганням даних у памяті комп’ютера та вивели результати роботи на екран. Описали представлення цілочисельних та дійсних типів даних у памяті ручними розрахунками. Текст програми поміщений в додаток а також безпосередньо у алгоритм вирішення задачі. Додатки: Текст програми: #include<stdio.h> #include<conio.h> #include <iostream> int main (void) { // створення та ініціалізація змінних int i; int i1=75; int i2=-375; float f1 = 117.116; float f2 = -234.232; unsigned char *vi1=(unsigned char *)(&i1); for (int i=0;i<sizeof(i1);i++) //вивід змінних printf("%02X ",vi1[i]); printf("\n"); unsigned char *vi2=(unsigned char *)(&i2); for (i=0;i<sizeof(i2);i++) printf("%02X ",vi2[i]); printf("\n"); unsigned char *vf1=(unsigned char *)(&f1); for (i=0;i<sizeof(f1);i++) printf("%02X ",vf1[i]); printf("\n"); unsigned char *vf2=(unsigned char *)(&f2); for (i=0;i<sizeof(f2);i++) printf("%02X ",vf2[i]); printf("\n"); getch(); return 0; } СПИСОК ЛІТЕРАТУРИ Грегори К. Использование Visual С++. Специальное издание. - М.: «Диалектика», 1999. Мешков А.В., Тихомиров Ю.В. Visual С++ и MFC. Пер. с англ. – 2-е изд. перераб. и доп. – СПб.: БХВ - Петербург, 2002. – 1040 с. Страуструп Б. Язык программирования С++. Третье издание. - М.: «Издательство Бином», 1999.
Антиботан аватар за замовчуванням

18.11.2012 16:11-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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