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

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

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

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

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

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

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра ЕОМ Звіт з лабораторної роботи №1 з дисципліни: “ Програмування. Частина III. Структури даних та алгоритми ” на тему: “ Представлення в пам’яті комп’ютера даних цілих та дійсних типів ” Вибір індивідуального завдання: i1 = Рr1 = №(I) = 84 i2 = i1 * (–5) = –420 f1 = рr2 . рr3 = №(u) . №(r) = 105.111 f2 = f1*(–3) = –315 . 333 Мета роботи: Дослідження внутрішнього представлення в пам’яті комп’ютера (ВПК) статичних даних базових типів. Постановка задачі: Дослідити внутрішнє представлення в пам’яті комп’ютера даних цілих та дійсних типів. Розглянути наступні базові типи даних: int i1 , і2; float f1 , f2; Ініціалізувати оголошенні змінні наступними значеннями: i1 = Рr1; i2 = i1 * (–5); f1 = рr2 . рr3; f2 = f1*(–3); Де: Рr1 - ASCII–код першої літери прізвища (латинська велика літера), рr2 - ASCII–код другої літери прізвища (латинська мала літера), рr3 - ASCII–код третьої літери прізвища (латинська мала літера). Система тестів: Система тестів-змінних у ВПК 1)  0000 0000 0000 0000 0000 0000 0101 0100 В пам’яті комп’ютера цілі числа зберігаються у зворотному порядку розміщення байт числа: 0101 0100 0000 0000 0000 0000 0000 0000 Результат в 16-ковій системі числення: 54 00 00 00. 2) : - 42010 = - 1A416 = - 1101001002 0000 0000 0000 0000 0000 0001 1010 0100 - прямий код; 1111 1111 1111 1111 1111 1110 0101 1011 - обернений код; + 1 1111 1111 1111 1111 1111 1110 0101 1100 - доповняльний код; F F F F F E 5 C - в 16- ковій системі числення В пам’яті комп’ютера зберігається у зворотному порядку розміщення байт числа: 1100 1010 1111 1110 1111 1111 1111 1111 Результат в 16- ковій системі числення: 5C FE FF FF. 3) В пам'яті комп’ютера зберігається додатнє число 105, 111 типу float . Перевід цілої частини: 105 10 = 69 16= 0110 10012 Перевід дробової частини: 0, 111 * 16 = 1,776 0, 776 * 16 = 12,416 0, 416 * 16 = 6,656 0, 656 * 16 = 10,496  => 0,111 10 = 0,1C6A 16   Отже: 105,111 10 = 69, 1C6A 16 = 0110 1001 , 0001 1100 0110 1010 2 Нормалізація: 01,10 1001 0001 1100 0110 1010 2 * 100110 Заокруглення: 1,10 1001 0001 1100 0110 1010 0 12710 = 111 1111 2 + 0110 1000 0101 2 Визначення знакового розряду: s=0 (бо число додатнє). Схема внутрішнього представлення: s  e  m  1 біт 8 біт 23 біт  Зборка за схемою: s e m  0 1000 0101 10 1001 0001 1100 0110 1010 0   В 16- ковій системі числення: 0100 0010 1101 0010 0011 1000 1101 0100 2= 42 D2 38 D4 16 В пам’яті комп’ютера буде зберігатися у зворотному порядку Результат в 16- ковій системі числення: D4 38 D2 42 4) В пам'яті комп’ютера зберігається від’ємне число -315 . 333типу float . Перевід цілої частини: 315 10 = 13B 16= 1 0011 10112 Перевід дробової частини: 0, 333 * 16 = 5,328 0, 328 * 16 = 5,248 0, 248 * 16 = 3,968 0, 832 * 16 = 15,488  => 0,333 10 = 0,553F 16   Отже: 315,333 10 = 13B, 553F 16 = 1 0011 1011 , 0101 0101 0011 1111 2 Нормалізація: 1, 0011 1011 0101 0101 0011 1111 2 * 101000 Заокруглення: 1, 0011 1011 0101 0101 0011 111│1 + 1 1, 0011 1011 0101 0101 0100 000 12710 = 111 1111 2 + 1000 1000 01112 Визначення знакового розряду: s=1 (бо число від’ємне). Схема внутрішнього представлення: s  e  m  1 біт 8 біт 23 біт  Зборка за схемою: s e m  1 1000 0111  0011 1011 0101 0101 0100 000   В 16- ковій системі числення: 1100 0011 1001 1101 1010 1010 1010 00002= C3 9D AA A0 16 В пам’яті комп’ютера буде зберігатися у зворотному порядку Результат в 16- ковій системі числення: A0 AA 9D C3 Алгоритм розв’язання задачі: 1) Ініціалізуємо вказані змінні згідно з вхідними даними. А саме, ASCII кодами перших трьох літер прізвища і виконуємо відповідні дії 2)Робимо явне приведення кожної змінної до динамічного типу (unsigned char)*. 3)Виводимо посимвольно відповідні вказівники типу unsigned char Результати виконання програми: / Висновок Я навчився представляти дані у ВПК Додаток 1 #include<stdio.h> void main(){ int i1; int i2; float f1; float f2; i1 = 73; i2 = i1*(-5); f1 = 117.114; f2 = f1*(-3); unsigned char *ins = (unsigned char *)(&i1); printf("i1 is:"); for (int i = 0; i < sizeof(i1); i++) printf("%02X ", ins[i]); printf("\n"); printf("i2 is:"); unsigned char *ins1 = (unsigned char *)(&i2); for (int i = 0; i < sizeof(i2); i++) printf("%02X ", ins1[i]); printf("\n"); printf("f1 is:",f1); unsigned char *ins2 = (unsigned char *)(&f1); for (int i = 0; i < sizeof(f1); i++) printf("%02X ", ins2[i]); printf("\n"); printf("f2 is:"); unsigned char *ins3 = (unsigned char *)(&f2); for (int i = 0; i < sizeof(f2); i++) printf("%02X ", ins3[i]); printf("\n"); }
Антиботан аватар за замовчуванням

04.06.2014 18:06-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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