Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра ЕОМ
Звіт до лабораторної роботи №1
“Внутрішнє представлення цілих та дійсних чисел в пам’яті комп ”
Варіант№7
Виконав: ст.гр. КІ-1
Львів 2007
Зміст
Мета роботи;
Постановка задачі;
Опис алгоритму;
Текст програми ;
Результати тестування;
Ручний розрахунок;
Результати виконання програм;
Мета Роботи: Дослідити внутрішнє представлення цілих та дійсних чисел в пам’яті комп’ютера.
2. Постановка задачі
Дослідити внутрішнє представлення змінної типу int для чисел 77 та -77 і змінної типу float для чисел 7,7 та -7,7.
Опис алгоритму
Створюємо вказівнк типу unsigned char на адреси змінних типу int та float. Далі в циклі, від 0 до об’єму, який займає змінна в пам’яті (кількості байтів ( комірок, які займає код числа)), виводимо на екран код числа, який представляємо в виді шістнадцяткового коду, побайтово, тобто кожен байт відповідає тетраді двійкового коду числа. Наведений алгоритм використовуємо для змінних типу int та float без змін.
Текст програми
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;
}
Результати тестування
Ручний розрахунок
Int: 7710 = 01001101 00000000 00000000 000000002=4D 00 00 0016
-7710 = 11111111 11111111 11111111 010011102=FF FF FF 4E16
float:7,710 = 01111011 00000011 00000000 010000002= B3 07 00 4016
-7,710 = 01111011 00000011 00000000 110000002= B3 07 00 C016
Результати виконання програм
int: 7710 = 4D 00 00 0016
-7710 = FF FF FF 4E16
float: 7,710 = 40 00 07 B316
-7,710 = C0 00 07 B316
Висновок: На данній лабораторній робіті було досліджено внутрішнє представлення змінної типу int для чисел 77 та -77 і змінної типу float для чисел 7,7 та -7,7.