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

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

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

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

Рік:
2013
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Програмування Частина III Структури даних та алгоритми

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

Міністерство освіти і науки, молоді та спорту України Національний університет “Львівська політехніка” Кафедра ЕОМ Звіт з лабораторної роботи № 1 на тему: "Представлення в пам’яті комп’ютера даних цілих та дійсних типів" з дисципліни: " Програмування. Частина III. Структури даних та алгоритми " Вибір індивідуального завдання: i1 = Рr1 = №(G) = 86 i2 = i1 * (–5) = –485 f1 = рr2 . рr3 = №(r) . №(o) = 97 . 115 f2 = f1*(–3) = –291 . 945 Мета роботи Дослідження внутрішнього представлення в пам’яті комп’ютера (ВПК) статичних даних базових типів. Постановка задачі Дослідити внутрішнє представлення в пам’яті комп’ютера даних цілих та дійсних типів. Розглянути наступні базові типи даних: int i1 , і2; float f1 , f2; Система тестів Представлення ВПК змінної i1 = 86 Додатнє число 86 типу int в пам'яті комп’ютера зберігається в прямому двійковому коді і займає 4 байти:  → 0000 0000 0000 0000 0000 0000 0101 0110 В пам’яті комп’ютера цілі числа зберігаються у зворотному порядку розміщення байт числа: 0101 0110 0000 0000 0000 0000 0000 0000 Результат в 16-ковій системі числення: 56 00 00 00. Представлення ВПК змінної i2 = -485 Від'ємне число -485 типу long int в пам'яті комп’ютера зберігається в доповняльному двійковому коді і займає 4 байти: - 48510 = - 1E516 = - 0001 1110 01012 0000 0000 0000 0000 0000 0001 1010 0101 - прямий код; 1111 1111 1111 1111 1111 1110 0001 1010 - обернений код; + 1 1111 1111 1111 1111 1111 1110 0001 1011 - доповняльний код; F F F F F E 1 B - в 16- ковій системі числення В пам’яті комп’ютера зберігається у зворотному порядку розміщення байт числа: 0001 1011 1111 1110 1111 1111 1111 1111 Результат в 16- ковій системі числення: 1B FE FF FF. Представлення ВПК змінної f1 = 97.115 Розглянемо, як в пам'яті комп’ютера зберігається додатнє число 97.115 типу float . Перевід цілої частини: 97 10 = 6116 Перевід дробової частини: 0, 115 * 16 = 1,84 0, 84 * 16 = 13,44 (1310 = D16) 0, 44 * 16 = 7,04  => 0,115 10 = 0,1D7 16   Отже: 97,115 10 = 61,1D7 16 = 0110 0001, 0001 1101 0111 2 Нормалізація: 01 , 10 0001 0001 1101 01112 * 10110 Заокруглення: 1 , 10 0001 0001 1101 0111 0000 │1 + 1 1 , 10 0001 0001 1101 0111 0000 1 Визначення мантиси: m= 10 0001 0001 1101 0111 0000 1 Визначення зміщеного порядку: е = 12710 + 610 = 133 10 = 85 16 = 1000 0101 2 Інший спосіб: 12710 = 111 1111 2 + 0110 1000 0101 2 Визначення знакового розряду: s=0 (бо число додатнє). Схема внутрішнього представлення: s  e  m  1 біт 8 біт 23 біт  Зборка за схемою: s e m  0 1000 0101 10 0001 0001 1101 0111 0000 1   В 16- ковій системі числення: 0100 0010 1100 0010 0011 1010 1110 0001 2= 42 C2 3A E1 16 В пам’яті комп’ютера буде зберігатися у зворотному порядку розміщення байт числа: 1110 0001 0011 1010 1100 0010 0100 0010 Результат в 16- ковій системі числення: E1 3A C2 42 Представлення ВПК змінної f2 = -291.945 Розглянемо, як в пам'яті комп’ютера зберігається від'ємне число -291.945 типу float . Різниця з попереднім прикладом буде полягати тільки у представленні знакового розряду. Визначення знакового розряду: s=1 (бо число від'ємне). Зборка за схемою (відміну від попереднього прикладу будемо виділяти жирним шріфтом): s e m  1 1000 0111 0010 0011 1111 0001 1110 110   В 16- ковій системі числення: 1100 0011 1001 0001 1111 1000 1111 01102 = C3 91 F8 F616 В пам’яті комп’ютера буде зберігатися у зворотному порядку розміщення байт числа: 1111 0110 1111 1000 1001 0001 1100 0011 Результат в 16- ковій системі числення: F6 F8 91 C3 Алгоритм розв’язання задачі #include<stdio.h> #include<conio.h> void main (void){ float f1, f2; int i1, i2; i1 = 86; i2 = -485; f1 = 97.115; f2 = -291.945; { unsigned char *vx=(unsigned char *)(&i1); printf("i1 = "); for (int i=0;i<sizeof(i1);i++) printf("%02X ",vx[i]); printf("\n"); } { unsigned char *vx=(unsigned char *)(&i2); printf("i2 = "); for (int i=0;i<sizeof(i2);i++) printf("%02X ",vx[i]); printf("\n"); } { unsigned char *vx=(unsigned char *)(&f1); printf("f1 = "); for (int i=0;i<sizeof(f1);i++) printf("%02X ",vx[i]); printf("\n"); } { unsigned char *vx=(unsigned char *)(&f2); printf("f2 = "); for (int i=0;i<sizeof(f2);i++) printf("%02X ",vx[i]); printf("\n"); } } Результати виконання програми  Висновки Виконуючи цю лабораторну роботу я досліджував внутрішнє представлення в пам’яті комп’ютера (ВПК) статичних даних базових типів.
Антиботан аватар за замовчуванням

03.04.2018 21:04-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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