1.Дослідження представлення в пам’яті комп’ютера змінної типу char.
Значення змінної типу char записується в пам’яті комп’ютера у формі ASCII-коду символа.Якщо змінній типу char присвоїти значення символа „Ч”, то у пам’ять запищеться 97, що відповідає ASCII-коду символа „Ч”.
1 байт

Очікуваний результат
97

Результат виконання програми
97

Представлення в пам’яті комп’ютера
1001 0111


2. Дослідження представлення в пам’яті комп’ютера змінної типу short int.
3250|16 203|16 3250=CB2
16 203 16 12
050 43
48 32
2 11
1 байт
2 байт

Очікуваний результат
B2
0C

Результат виконання програми
B2
0C

Представлення в пам’яті комп’ютера
1011 0010
1010 0010


3. Дослідження представлення в пам’яті комп’ютера змінної типу int.
-3250= -CB2
0000 0000 0000 0000 0000 1100 1011 0010 – прямий код;
1111 1111 1111 1111 1111 0011 0100 1101 – обернений код;
1111 1111 1111 1111 1111 0011 0100 1110 – доповняльний код.
1 байт
2 байт
3 байт
4 байт

Очікуваний результат
4E
F3
FF
FF

Результат виконання програми
4E
F3
FF
FF

Представлення в пам’яті комп’ютера
0100 1110
1111 0011
1111 1111
1111 1111


В пам’яті комп’ютера 4E F3 FF FF.
4. Дослідження представлення в пам’яті комп’ютера змінної типу float.
11.1984=B.32CA57=1011.001100101100101001010
0.1984 0.1744 0.7904 0.6464 0.3424 0.4784 0.6544 0.4704
16 16 16 16 16 16 16 16
3.1744 2.7904 12.6464 10.3424 5.4784 7.6544 10.4704 7.5264
7F+3=82
0. 10000010 01100110010110010100101
надлишкова
1 байт
2 байт
3 байт
4 байт

Очікуваний результат
A5
2C
33
41

Результат виконання програми
A5
2C
33
41

Представлення в пам’яті комп’ютера
1010 0101
0011 1100
0011 0011
0100 0001


5. Дослідження представлення в пам’яті комп’ютера змінної типу double.
-1399.8= -577.(C)= -0101 0111 0111.(1100)
1399|16 87|16 0.8
128 87 80 5 16
119 7 12.8
112
7
3FF+A=409
1 100 0000 1001 0101 1101 1111 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011
надлишкова
1 байт
2 байт
3 байт
4 байт
5 байт
6 байт
7 байт
8 байт

ОP
33
33
33
33
33
ВА
95
С0

РВП
33
33
33
33
33
ВА
95
С0

ППК
0011 0011
0011 0011
0011 0011
0011 0011
0011 0011
1011 1010
1001 0101
1100 0000


6. Дослідження представлення в пам’яті комп’ютера змінної типу long double.
1399.8= 577.(C)= 0101 0111 0111.(1100)
3FFF+A=4009
0 100000000001001 1 010111011111001100110011001100110011001100110011001100110011001 1
0 100000000001001 1 010111011111001100110011001100110011001100110011001100110011010
1 байт
2 байт
3 байт
4 байт
5 байт
6 байт
7 байт
8 байт
9 байт
10 байт

ОP
9A
99
99
99
99
99
F9
AE
09
40

РВП
9A
99
99
99
99
99
F9
AE
09
40

ППК
1001 1010
1001 1001
1001 1001
1001 1001
1001 1001
1001 1001
1111 1001
1010 1110
0000 1001
0100 0000


7. Дослідження представлення в пам’яті комп’ютера змінної рядкового типу.
Рядок представляється в пам’яті комп’ютера як послідовність ASCII-кодів символів, що є у ньому.В кінці додається символ з ASCII-кодом 00.
‘Ч’ – 97, ‘е’ – А5, ‘м’ – АС, ‘е’ – А5, ‘р’ – Е0, ‘и’ – А8, ‘с’ – Е1 ‘\0’ – 00.
1 байт
2 байт
3 байт
4 байт
5 байт
6 байт
7 байт
8 байт

ОP
97
A5
AC
A5
E0
A8
E1
00

РВП
97
A5
AC
A5
E0
A8
E1
00

ППК
1001 0111
1001 0101
1001 1100
1001 0101
1110 0000
1010 1001
1110 0001
0000 0000


8. Дослідження представлення в пам’яті комп’ютера змінної перелічуваного типу.
Значенню змінної перелічуваного типу в пам’яті комп’ютера відповідає порядковий номер (починаючи з 0) заданої змінної у списку ідентифікаторів, задані при описі типу.
enum{Chemerys,Yurij,Anatolijovich}pe=Yurij;
ре у пам’яті комп’ютера представляється як 01.
1 байт

Очікуваний результат
01

Результат виконання програми
01

Представлення в пам’яті комп’ютера
0000 0001


9. Дослідження представлення в пам’яті комп’ютера масивa змінних типу char.
Масив змінних типу char представляється в пам’яті комп’ютера як послідовність ASCII-кодів символів,що входять в цей масив.Багатовимірний масив зберігається так, що найбільш правий індекс збільшується першим.
Масив ‘2’ ‘3’ ‘0’ ‘3’ ‘0’ в пам’яті збережеться так:
‘0’ ‘2’ ‘0’ ‘1’ ‘6’
32 33 30 33 30 30 32 30 31 36 =
11001100110011001100000011001100110000001100000011001000110000
1 байт
2 байт
3 байт
4 байт
5 байт
6 байт
7 байт
8 байт
9 байт
10 байт

ОP
32
33
30
33
30
30
32
30
31
36

РВП
32
33
30
33
30
30
32
30
31
36

ППК
0011 0010
0011 0011
0011 0000
0011 0011
0011 0000
0011 0000
0011 0010
0011 0000
0011 0001
0011 0110


10. Дослідження представлення в пам’яті комп’ютера записів.
Запис struct{char a1[15], a2[15],b1,b2,b3;
short int c1,c2;} rec={"Львів","Світла",',',',','/',6,9};
буде виглядати так: 8B EC A2 F7 A2 00 00 00 00 00 00 00 00 00 00
91 A2 F7 E2 AB A0 00 00 00 00 00 00 00 00 00 2C 2C 2F 00 06 00 09 00
1000 1011 1110 1100 1010 0010 1111 0111 1010 0010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0100 1000 1101 0001 0111 1011 1111 0001 0101 0101 1101 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0010 1100 0010 1100 0010 1111 0000 0000 0000 0110 0000 0000 0000 1001 0000 0000
34-ий байт порожній тому, що значення змінних типу short int записуються починаючи з парних адрес.
1 байт
2 байт
3 байт
4 байт
5 байт
6 байт
7 байт
8 байт
9 байт
10 байт

ОР
8B
EC
A2
F7
A2
00
00
00
00
00

РВП
8B
EC
A2
F7
A2
00
00
00
00
00

ППК
1000 1011
1110 1100
1010 0010
1111 0111
1010 0010
0000 0000
0000 0000
0000 0000
0000 0000
0000 0000


11 байт
12 байт
13 байт
14 байт
15 байт
16 байт
17 байт
18 байт
19 байт
20 байт

ОР
00
00
00
00
00
91
A2
F7
E2
AB

РВП
00
00
00
00
00
91
A2
F7
E2
AB

ППК
0000 0000
0000 0000
0000 0000
0000 0000
0000 0000
1001 0001
1010 0010
1111 0111
1110 0010
1010 1011


21 байт
22 байт
23 байт
24 байт
25 байт
26 байт
27 байт
28 байт
29 байт
30 байт

ОР
A0
00
00
00
00
00
00
00
00
00

РВП
A0
00
00
00
00
00
00
00
00
00

ППК
1010 0000
0000 0000
0000 0000
0000 0000
0000 0000
0000 0000
0000 0000
0000 0000
0000 0000
0000 0000


31 байт
32 байт
33 байт
34 байт
35 байт
36 байт
37 байт
38 байт



ОР
2C
2C
2F
00
06
00
09
00



РВП
2C
2C
2F
00
06
00
09
00



ППК
0010 1100
0010 1100
0010 1111
0000 0000
0000 0110
0000 0000
0000 1001
0000 0000




11. Дослідження текстового файлу.
Записавши у файл два рядка "Chemerys Anatolij Oleksijovich\n" і Chemerys Oksana Matvijivna" у фалі отримаємо наступну послідовність ASCII-кодів:
43-‘C’ 68-‘h’ 65-‘e’ 6D-‘m’ 65-‘e’ 72-‘r’ 79-‘y’ 73-‘s’ 20-‘ ‘ 41-‘A’ 6E-‘n’ 61-‘a’ 74-‘t’ 6F-‘o’ 6C-‘l’ 69-‘i’ 6A-‘j’ 20-‘ ‘ 4F-‘O’ 6C-‘l’ 65-‘e’ 6B-‘k’ 73-‘s’ 69-‘i’ 6A-‘j’ 6F-‘o’ 76-‘v’ 69-’i’ 63-‘c’ 68-‘h’ 0D-повернення каретки 0A-перевід рядка 43-‘C’ 68-‘h’ 65-‘e’ 6D-‘m’ 65-‘e’ 72-‘r’ 79-‘y’ 73-‘s’ 20-‘ ‘ 4F-‘O’ 6B-‘k’ 73-‘s’ 61-‘a’ 6E-‘n’ 61-‘a’ 20-‘ ’ 4D-‘M’ 61-‘a’ 74-‘t’ 76-‘v’ 69-‘i’ 6A-‘j’ 69-‘i’ 76-‘v’ 6E-‘n’ 61-‘a’ 1A-EOF
#include<stdio.h>
struct{char a1[15], a2[15],b1,b2,b3;
short int c1,c2;} rec={"‹ì¢÷¢","‘¢÷â« ",',',',','/',6,9};
main()
{int i;
short int a=3250;
int al=-3250;
float f=11.1984;
double d=-1399.8;
long double ld=1399.8l;
char c,ch='—',*str="—¥¬¥à¨á";
FILE *fl;
unsigned char *p;
enum{Chemerys,Yurij,Anatolijovich}pe=Yurij;
char m[2][5]={{'2','3','0','3','0'},
{'0','2','0','1','6'}};
printf("Choose type:\n 1 - char\n 2 - short integer\n 3 - integer\n 4 - float\n 5 - double\n 6 - long double\n 7 - string\n 8 - enumerated\n 9 - array\n A - record\n B - file\n 0 - exit\n");
do{
c=getchar();if(c!='\n')getchar();
switch (c)
{case '1':p=&ch;
if (*p>0x9)printf("%x\n",*p);
else printf("0%x\n",*p);break;
case '2':p=&a;
for(i=0;i<2;i++)
if (*(p+i)>0xf)printf("%x ",*(p+i));
else printf("0%x ",*(p+i));printf("\n");break;
case '3':p=&al;
for(i=0;i<4;i++)
if (*(p+i)>0xf)printf("%x ",*(p+i));
else printf("0%x ",*(p+i));printf("\n");break;
case '4':p=&f;
for(i=0;i<4;i++)
if (*(p+i)>0xf)printf("%x ",*(p+i));
else printf("0%x ",*(p+i));printf("\n");break;
case '5':p=&d;
for(i=0;i<8;i++)
if (*(p+i)>0xf)printf("%x ",*(p+i));
else printf("0%x ",*(p+i));printf("\n");break;
case '6':p=&ld;
for(i=0;i<10;i++)
if (*(p+i)>0xf)printf("%x ",*(p+i));
else printf("0%x ",*(p+i));printf("\n");break;
case '7':p=str;
for(i=0;*(p+i-1)!=0;i++)
if (*(p+i)>0xf)printf("%x ",*(p+i));
else printf("0%x ",*(p+i));printf("\n");break;
case '8':p=&pe;
if (*p>0x9)printf("%x\n",*p);
else printf("0%x\n",*p);break;
case '9':p=m;
for(i=0;i<10;i++)
printf("%x ",*(p+i));printf("\n");break;
case 'A':;
case 'a':p=&rec;
for(i=0;i<sizeof(rec);i++)
if (*(p+i)>0xf)printf("%x ",*(p+i));
else printf("0%x ",*(p+i));
printf("\n");break;
case 'B':;
case 'b':fl=fopen("mycfile","w");
fputs("Chemerys Anatolij Oleksijovich\n",fl);
fputs("Chemerys Oksana Matvijivna",fl);
printf("File was made\n");break;
default:printf("Choose type:\n 1 - char\n 2 - short integer\n 3 - integer\n 4 - float\n 5 - double\n 6 - long double\n 7 - string\n 8 - enumerated\n 9 - array\n A - record\n B - file\n 0 - exit\n");
}}while(c!='0');
}