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

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

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

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

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

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” / Кафедра ЕОМ Лабораторна робота №1 "Представлення в пам’яті комп’ютера цілих та дійсних типів даних" МЕТА РОБОТИ Дослідження внутрішнього представлення в пам’яті комп’ютера базових типів даних статичної структури. Постановка задачі І. Дослідити внутрішнє представлення в пам’яті комп’ютера цілих та дійсних типів даних. Int i1=75 Додатнє число 75 типу int в пам'яті комп’ютера зберігається в прямому двійковому коді і займає 4 байти: 7510=4B16=10010112 0000 0000 0000 0000 0000 0000 0100 1011 В пам’яті комп’ютера цілі числа зберігаються у зворотному порядку розміщення байт числа: 0100 1011 0000 0000 0000 0000 0000 0000 Результат в 16-ковій системі числення: 4B 00 00 00. Int i2= -375 Від'ємне число -375 типу long int в пам'яті комп’ютера зберігається в доповняльному двійковому коді і займає 4 байти: - 37510 = - 18116 = - 0001 0111 01112 0000 0000 0000 0000 0000 0001 0111 0111 - прямий код; 1111 1111 1111 1111 1111 1110 1000 1000 - обернений код; + 1 1111 1111 1111 1111 1111 1110 1000 1001 - доповняльний код; F F F F F E 8 9 - в 16- ковій системі числення В пам’яті комп’ютера зберігається у зворотному порядку розміщення байт числа: 1000 1001 1111 1110 1111 1111 1111 1111 Результат в 16- ковій системі числення: 89 FE FF FF Float f1=114.9710 Перевід цілої частини: 114\16=7(залишок 2) 11410=7216 Перевід дробової частини 0,97*16=15.52 0,52*16=8.32 0,32*16=5.12 0,12*16=1.92 0,92*16=14.72 0,9710=F851E16 114.7210=72,F851E 16=0111 0010,1111 1000 0101 0001 1110 2 Нормалізація: 1,11 0010 1111 1000 0101 0001 11102 * 100110 Заокруглення: 1, 11 0010 1111 1000 0101 0001 111 Визначення мантиси: m= 11 0010 1111 1000 0101 0001 111 Визначення зміщеного порядку: е = 12710 + 610 = 13310 = 85 16 = 1000 0101 2 Визначення знакового розряду: s=0 (бо число додатнє). Зборка за схемою: s e M  0 1000 0101 110 0101 1111 0000 1010 0100   В 16- ковій системі числення: 0100 0010 110 0101 1111 0000 1010 0100 В пам’яті комп’ютера буде зберігатися у зворотному порядку розміщення байт числа: 1010 0100 1111 0000 1110 0101 0100 0010 A4F0E542 Результат в 16- ковій системі числення: A4F0E542 Float f2= -229.94 Перевід цілої частини: 229\16=14(залишок 5) 22910=E516 Перевід дробової частини: 0,94*16=15.04 0,04*16=0.64 0,64*16=10.24 0,24*16=3.84 -229,9410= -E5,F0A316=1110 0101,1111 0000 1010 00112 Нормалізація: 1.110 0101 1111 0000 1010 00112 * 10111 Визначення мантиси: m=110 0101 1111 0000 1010 0100 Визначення зміщеного порядку: е = 12710 + 710 = 13410 = 86 16 = 1000 0110 2 Визначення знакового розряду: s=1 (бо число від`эмне). S e m  1 1000 0110 110 0101 1111 0000 1010 0100   В 16-й системі числення:1100 0011 0110 0101 1111 0000 1010 0100 В пам’яті комп’ютера 1010 0100 1111 0000 0110 0101 1100 0011 A4F065C3 Результат в 16- ковій системі числення: A4F065C3 5. PЕЗУЛЬТАТ ВИКОНАННЯ ПРОГРАМИ : / ВИСНОВКИ На цій лабораторній роботі я дослідив внутрішнє представлення в пам’яті комп’ютера базових типів даних статичної структури. Виконуючи цю лабораторну роботу, я зрозумів як представлені числа пам’яті комп’ютера: в знакових типах лівий біт використовується для зберігання знака числа (0 – плюс, 1 – мінус). Решта бітів містять числове значення. В беззнакових типах всі біти використаються для числового значення. За замовчуванням всі цілочисельні типи вважаються знаковими. Важливим для мене було те, що в пам’яті комп’ютера цілі числа зберігаються у зворотному порядку розміщення байт числа. ДОДАТКИ Текст набраної мною програми : #include<stdio.h> #include<conio.h> //using namespace std; int main (void) { //представлення числа і1; int i1=75; 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=-375; 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=114.97; 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=-229.94; 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; }
Антиботан аватар за замовчуванням

18.11.2012 18:11-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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