Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра ЕОМ
Лабораторна робота №15
з дисципліни: “Програмування”
на тему: “Внутрішнє представлення цілих і дійсних типів даних в пам’яті комп’ютера”
Варіант № 15
Виконав: ст.гр. КІ-1
Львів 2007
Мета роботи: Дослідити внутрішнє представлення цілих і дійсних типів даних.
Постановка задачі: Дослідити внутрішнє представлення змінної типу int для чисел 1515 i -1515, і змінної типу float для чисел 15.15 і -15.15.
Алгоритм: Створення функцій підпрограми, яка буде представляти число у двійковій формі. Саме тіло програми буде виконувати функцію виклику та виводу підфункції і повертати двійкове число.
Текст програми:
main.c
#include <stdio.h>
#include <conio.h>
int main (void)
{
int ifirst, isecond;
float ffirst, fsecond;
int i;
unsigned char* pf=(unsigned char *)(&ifirst);
unsigned char* ph=(unsigned char *)(&isecond);
printf("Input first number by int:\n");
scanf("%d", &ifirst);
for(i=0; i<sizeof(ifirst); i++)
printf("%X", pf[i]);
printf("\n");
printf("Input second number by int:\n");
scanf("%d", &isecond);
for(i=0; i<sizeof(isecond); i++)
printf("%X ", ph[i]);
printf("\n");
/*-----------------------------------*/
printf("Input first number by float:\n");
scanf("%f", &ffirst);
for(i=0; i<sizeof(ffirst); i++)
printf("%X", pf[i]);
printf("\n");
printf("Input second number by float:\n");
scanf("%f", &fsecond);
for(i=0; i<sizeof(fsecond); i++)
printf("%X ", ph[i]);
printf("\n");
getch();
return 0;
}
Тестування:
ручний розрахунок:
151510 = 1110 1011 0000 0101 0000 0000 0000 00002 = EB 05 00 0016
-151510 = 0001 0101 1111 1010 1111 1111 1111 11112 = 15 FA FF FF16
15.1510 = 0000 0000 0110 0000 0111 0010 0100 00012 = 00 60 72 4116
-15.1510 = 0000 0000 0110 0000 0111 0010 1100 00012 = 00 60 72 C116
результат виконання програми:
151510 – EB 05 00 0016
-151510 – 15 FA FF FF16
15.1510 – 00 60 72 4116
-15.1510 – 00 60 72 C116
Висновки: Дослідив внутрішнє представлення цілих та дійсних типів.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!