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

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

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

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

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

Рік:
2015
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Програмування Частина 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:15

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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