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

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

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

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

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

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” / Кафедра ЕОМ Лабораторна робота №1 "Представлення в пам’яті комп’ютера цілих та дійсних типів даних" МЕТА РОБОТИ Дослідження внутрішнього представлення в пам’яті комп’ютера базових типів даних статичної структури. Постановка задачі І. Дослідити внутрішнє представлення в пам’яті комп’ютера цілих та дійсних типів даних. Int i1=75 Додатнє число 75 типу int в пам'яті комп’ютера зберігається в прямому двійковому коді і займає 4 байти:  7510=4B16=10010112 0000 0000 0000 0000 0000 0000 0100 1101 В пам’яті комп’ютера цілі числа зберігаються у зворотному порядку розміщення байт числа: 0100 1101 0000 0000 0000 0000 0000 0000 Результат в 16-ковій системі числення: 4D 00 00 00. Int i2= -385 Від'ємне число -385 типу long int в пам'яті комп’ютера зберігається в доповняльному двійковому коді і займає 4 байти: - 38510 = - 18116 = - 0001 1000 00012 0000 0000 0000 0000 0000 0001 1000 0001 - прямий код; 1111 1111 1111 1111 1111 1110 0111 1110 - обернений код; + 1 1111 1111 1111 1111 1111 1110 0111 1111 - доповняльний код; F F F F F E 7 F - в 16- ковій системі числення В пам’яті комп’ютера зберігається у зворотному порядку розміщення байт числа: 0111 1111 1111 1110 1111 1111 1111 1111 Результат в 16- ковій системі числення: 7F FE FF FF Float f1=97.11710 Перевід цілої частини: 97\16=6(залишок 1) 9710=6116 Перевід дробової частини 0,117*16=1,872 0,872*16=13,952 0,952*16=15,232 0,232*16=3,712 0,712*16=11,392 0,11710=1DF3B16 97.11710=61,1DF3B 16=0101 0001, 0001 1101 1111 0011 10112 Нормалізація: 1,01 0001 0001 1101 1111 0011 10112 * 100110 Заокруглення: 1, 01 0001 0001 1101 1111 0011 1 | 11 + 1 1, 01 0001 0001 1101 1111 0011 1 Визначення мантиси: m= 01 0001 0001 1101 1111 0011 1 Визначення зміщеного порядку: е = 12710 + 610 = 13310 = 85 16 = 1000 0101 2 Визначення знакового розряду: s=0 (бо число додатнє). Зборка за схемою: s e M  0 1000 0101 01 0001 0001 1101 1111 0011 1   В 16- ковій системі числення: 0100 0010 1010 0010 0011 1011 1110 0111 В пам’яті комп’ютера буде зберігатися у зворотному порядку розміщення байт числа: 1110 0111 0011 1011 1010 0010 0100 0010 E7 3B A2 42 Результат в 16- ковій системі числення: E7 3B A2 42 Float f2= -194,234 Перевід цілої частини: 194\16=12(залишок 2) 19410=C216 Перевід дробової частини: 0,234*16=3,744 0,744*16=11,904 0,904*16=14,464 0,464*16=7,424 -194, 23410= -C2,3BE716=1100 0010, 0011 1011 1110 01112 Нормалізація: 1.100 0010 0011 1011 1110 01112 * 100111 Визначення зміщеного порядку: е = 12710 + 710 = 13410 = 86 16 = 1000 0110 2 Визначення знакового розряду: s=1 (бо число від`эмне). S e m  1 1000 0110 100 0010 0011 1011 1110 0111   В 16-й системі числення:1100 0011 0100 0010 0011 1011 1110 0111 В пам’яті комп’ютера 1110 0111 0011 1011 0100 0010 1100 0011 E7 3B 42 C2 5. PЕЗУЛЬТАТ ВИКОНАННЯ ПРОГРАМИ : / ВИСНОВКИ На цій лабораторній роботі я дослідив внутрішнє представлення в пам’яті комп’ютера базових типів даних статичної структури. Виконуючи цю лабораторну роботу, я зрозумів як представлені числа пам’яті комп’ютера: в знакових типах лівий біт використовується для зберігання знака числа (0 – плюс, 1 – мінус). Решта бітів містять числове значення. В беззнакових типах всі біти використаються для числового значення. За замовчуванням всі цілочисельні типи вважаються знаковими. Важливим для мене було те, що в пам’яті комп’ютера цілі числа зберігаються у зворотному порядку розміщення байт числа. ДОДАТКИ Текст набраної мною програми : #include<stdio.h> #include<conio.h> //using namespace std; int main (void) { //представлення числа і1; int i1=77; unsigned char *vi1=(unsigned char *)(&i1);//посилання на число printf("\ni1= "); for (int i=0;i<sizeof(i1);i++) printf("%02X ",vi1[i]); //вивід числа і1; printf("\n\n"); //представлення числа і2; int i2=-385; unsigned char *vi2=(unsigned char *)(&i2); //посилання на число printf("i2= "); for (int i=0;i<sizeof(i2);i++) //вивід числа і2; printf("%02X ",vi2[i]); printf("\n\n"); //представлення числа f1; float f1=97.117; unsigned char *vf1=(unsigned char *)(&f1); //посилання на число printf("f1= "); for (int i=0;i<sizeof(f1);i++) //вивід числа f1; printf("%02X ",vf1[i]); printf("\n\n"); //представлення числа f2; float f2=-194.234; unsigned char *vf2=(unsigned char *)(&f2); //посилання на число printf("f2= "); for (int i=0;i<sizeof(f2);i++) //вивід числа f2; printf("%02X ",vf2[i]); printf("\n"); getch(); return 0; }
Антиботан аватар за замовчуванням

19.11.2012 14:11-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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