Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра ЕОМ
Лабораторна робота №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
Висновки: Дослідив внутрішнє представлення цілих та дійсних типів.