Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра ЕОМ
Звіт
з лабораторної роботи № 1
з дисципліни: “Програмування”
на тему: “Внутрішні формати данних ”
Варіант 21
Мета робити: Дослідити внутрішнє представлення данних у комп’тері.
Постановка задачі: Перевести вручну і перевірити програмно представлення в пам’яті комп’ютера цілочисельної змінної типу int які мають значення +2121 і -2121 та дійсих змінних типу float які мають значення +21.21 і -21.21.
Алгоритм розв’язання задачі:
Задати числа 2121 і -2121 типу integer.
Задати числа 21.21 і -21.21 типу float.
Задати вказывники типу char на попередньо заданы числа.
Вивести на екран «integer» та з нового рядка «i1=».
j = 0.
Якщо j менше за розмір i1 то 7 інакше 10.
За допомогою вказівника вивести на екран j – ий байт числа 2121.
j = j + 1.
Повернутись до пункту 6.
j = 0.
Якщо j менше за розмір i1 то 12 інакше 15.
За допомогою вказівника вивести на екран j – ий байт числа -2121.
j = j + 1.
Повернутись до пункту 11.
j = 0.
Якщо j менше за розмір i1 то 17 інакше 20.
За допомогою вказівника вивести на екран j – ий байт числа 21.21.
j = j + 1.
Повернутись до пункту 16.
j = 0.
Якщо j менше за розмір i1 то 22 інакше 25.
За допомогою вказівника вивести на екран j – ий байт числа -21.21.
j = j + 1.
Повернутись до пункту 21.
Кінець
Текст програми:
#include <stdio.h>
#include <conio.h>
int main(void)
{
int i1 = 2121, i2 = -2121, j;
float f1 = 21.21, f2 = -21.21;
unsigned char *vki1 = (unsigned char*)(&i1), *vki2 = (unsigned char*)(&i2);
unsigned char *vkf1 = (unsigned char*)(&f1), *vkf2 = (unsigned char*)(&f2);
printf("\t\tinteger\n%d\t=", i1);
for (j = 0; j < sizeof(i1); j++) printf(" %X", vki1[j]);
printf("\n%d\t=", i2);
for (j = 0; j < sizeof(i2); j++) printf(" %X", vki2[j]);
printf("\n\t\tfloat\n%lf\t=", f1);
for (j = 0; j < sizeof(f1); j++) printf(" %X", vkf1[j]);
printf("\n%lf\t=", f2);
for (j = 0; j < sizeof(f2); j++) printf(" %X", vkf2[j]);
getch();
return 0;
}
Тестування програми:
Ручний розрахунок:
Результати виконання програми:
Висновок: Дослідив внутрішнє представлення данних у комп’тері та навчився виводити дані із внутрішньої памяті комп’тера у шістнадцятковій системі.