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

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

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

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

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

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

Міністерство освіти і науки, молоді та спорту України Національний університет “Львівська політехніка” Кафедра ЕОМ Звіт з лабораторної роботи № 1 на тему: "Представлення в пам’яті комп’ютера даних цілих та дійсних типів" з дисципліни: " Програмування. Частина III. Структури даних та алгоритми " Вибір індивідуального завдання: i1 = Рr1 = №(С) = 67 i2 = i1 * (–5) = –335 f1 = рr2 . рr3 = №(h) . №(a) = 97 . 104 f2 = f1*(–3) = –291,312 Мета роботи: Дослідження внутрішнього представлення в пам’яті комп’ютера (ВПК) статичних даних базових типів. Постановка задачі: Дослідити внутрішнє представлення в пам’яті комп’ютера даних цілих та дійсних типів. Розглянути наступні базові типи даних: int i1 , і2; float f1 , f2; Система тестів: Представлення ВПК змінної i1 = 67 Додатнє число 67 типу int в пам'яті комп’ютера зберігається в прямому двійковому коді і займає 4 байти:  → 0000 0000 0000 0000 0000 0000 0100 0011 В пам’яті комп’ютера цілі числа зберігаються у зворотному порядку розміщення байт числа: 0100 0011 0000 0000 0000 0000 0000 0000 Результат в 16-ковій системі числення: 43 00 00 00. Представлення ВПК змінної i2 = -335 Від'ємне число -485 типу long int в пам'яті комп’ютера зберігається в доповняльному двійковому коді і займає 4 байти: - 33510 = - 14F16 = - 1 0100 11112 0000 0000 0000 0000 0000 0001 0100 1111 - прямий код; 1111 1111 1111 1111 1111 1110 1011 0000 - обернений код; + 1 1111 1111 1111 1111 1111 1110 1011 0001 - доповняльний код; F F F F F E B 1 - в 16- ковій системі числення В пам’яті комп’ютера зберігається у зворотному порядку розміщення байт числа: 1011 0001 1111 1110 1111 1111 1111 1111 Результат в 16- ковій системі числення: B1 FE FF FF. Представлення ВПК змінної f1 = 97.104 Розглянемо, як в пам'яті комп’ютера зберігається додатнє число 97.104 типу float . Перевід цілої частини: 97 10 = 6116 Перевід дробової частини: 0, 104 * 16 = 1,664 0, 664 * 16 = 10,624 (1010 = A16) 0, 624 * 16 = 9,984 0, 984 * 16 = 15,744 (1510 = F16)  => 0,104 10 = 0,1A9F 16   Отже: 97,104 10 = 61,1A9F 16 = 0110 0001, 0001 1010 1001 11112 Нормалізація: 01, 10 0001 0001 1010 1001 11112 * 10110 Заокруглення: 1, 10 0001 0001 1010 1001 1111 │1 + 1 1, 10 0001 0001 1010 1001 1111 1 Визначення мантиси: m= 0 0001 0001 1010 1001 1111 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 1010 1001 1111 1   В 16- ковій системі числення: 0100 0010 1100 0010 0011 0101 0011 1111 2= 42 C2 35 3F 16 В пам’яті комп’ютера буде зберігатися у зворотному порядку розміщення байт числа: 0011 1111 0011 0101 1100 0010 0100 0010 Результат в 16- ковій системі числення: 3F 35 C2 42 Представлення ВПК змінної f2 = -291,312 Розглянемо, як в пам'яті комп’ютера зберігається від'ємне число -291,312 типу float . Перевід цілої частини: -29110 = 12316 Перевід дробової частини: 0, 312 * 16 = 4,992 0, 992 * 16 = 15,872 (1510 = F16) 0, 872 * 16 = 13,952 (1310 = D16)  => 0,312 10 = 0,4FD 16   Отже: -291,312 10 = 123,4FD 16 = -0001 0010 0011 , 0100 1111 11012 Нормалізація: 0001 , 0010 0011 0100 1111 11012 * 101000 Заокруглення: 1 , 0010 0011 0100 1111 110│1 + 1 1 , 0010 0011 0100 1111 111 Визначення мантиси: m= 0010 0011 0100 1111 111 Визначення зміщеного порядку: е = 12710 + 810 = 135 10 = 87 16 = 1000 0111 2 Інший спосіб: 12710 = 111 1111 2 + 1000 1000 0111 2 Визначення знакового розряду: s=1 (бо число від'ємне). Схема внутрішнього представлення: s  e  m  1 біт 8 біт 23 біт   Зборка за схемою: s e m  1 1000 0111 0010 0011 0100 1111 1110 000   В 16- ковій системі числення: 1100 0011 1001 0001 1010 0111 1111 0000 2= C3 91 A7 F0 16 В пам’яті комп’ютера буде зберігатися у зворотному порядку розміщення байт числа: 1111 0000 1010 0111 1001 0001 1100 0011 Результат в 16- ковій системі числення: F0 A7 91 C3 Алгоритм розв’язання задачі: #include<stdio.h> #include<conio.h> void main (void) { float f1, f2; int i1, i2; i1 = 67; i2 = -335; f1 = 97.104; f2 = -291.312; { 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"); } } Результат виконання програми: / Рис1. Ескіз вікна з результатом виконання програми Висновок: в цій лабораторній роботі я зрозумів принцип представлення чисел в комп’ютері, їхньою структурою та типами. Вдосконалив свої знання про представлення чисел в різних системах числення та типах даних, а також закріпив нові знання щодо мови програмування С++.
Антиботан аватар за замовчуванням

14.04.2015 19:04-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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