
- •Курсова робота ( частина і )
- •Теоретична частина
- •2.1.4. Дійсний тип
- •2.2. Завдання 2. Внутрішні формати похідних типів
- •2.2.1. Представлення рядку символів в пам’яті комп’ютера.
- •2.2.2. Представлення перерахувань в пам’яті комп’ютера.
- •2.2.3. Представлення масивів в пам’яті комп’ютера.
- •2.2.4. Представлення структур в пам’яті комп’ютера.
- •2) Unsigned b:7;
- •2.2.5. Представлення об'єднань в пам’яті комп’ютера.
- •Double e;
- •2) Unsigned long c;
- •Алгоритм розв’язання задачі
- •Результат виконання программи
2) Unsigned b:7;
str.b = 234112 ;
23411210 = 3928016=0011 1001 0010 1000 00002
Під тип unsigned зарезервовано 4 байти структури, але з цих 4-х байт заповнюються тільки 7 молодших біта змінної b.
str.b = 0011 1001 0010 1000 00002
7 молодших біти str.b: 000 00002
Змінна b до присвоєння: 1100 1100 1100 1100 1100 1100 1100 11002 (СС СС16)
Змінна b після присвоєння: 1100 1100 1100 1100 1100 1100 1000 00002
ВПК b: 1000 0000 1100 1100 1100 1100 1100 11002
ВПК b: 80 СС СС СС 16
char c[6];
str.c[0] = ‘M’ = 4D;16;
str.c[1] = ‘o’ = 6F16;
str.c[2] = ‘v’ = 7616;
str.c[3] = ‘c’ = 6316;
str.c[4] = ‘h’ = 6816;
Решта вільних елементів масиву будуть заповнені числом СС16
ВПК масиву: 4D 6F 76 63 68 CC
3) long d;
str.d = 90152;
9015210=00 01 60 2816
Під тип long зарезервовано 4 байти структури.
ВПК (str.d): 28 60 01 0016
4) unsigned e : 3;
str.e = 8640;
864010 = 21C016 = 0010 0001 1100 00002
3 молодших біти str.b: 0002
Змінна e до присвоєння: 1100 1100 1100 1100 1100 1100 1100 11002 (СС СС СС СС16)
Змінна b після присвоєння: 1100 1100 1100 1100 1100 1100 1100 10002
ВПК (str.e): C8 CC CC CС16
5) char f;
str.f = '8';
ASCII код цифри 8 - це 3816 .Оскільки тип char, як правило, займає 1 байт пам'яті, це означає що змінна f буде мати значення 3816.
ВПК (str.f): 3816
Тепер ми маємо остаточне представлення структури в пам’яті комп’ютера:
Номер байту
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
Значення |
80 |
CC |
CC |
CC |
4D |
6F |
76 |
63 |
68 |
CC |
CC |
CC |
C8 |
CC |
CC |
CC |
Число |
unsigned b:7 |
c[0] |
c[1] |
c[2] |
c[3] |
c[4] |
c[5] |
unsigned char :5 |
Вирівювання |
unsigned e : 3 |
Номер байту
|
16
|
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
|
Значення |
38
|
CC |
CC |
CC |
28 |
60 |
01 |
00 |
3D |
0A |
D7 |
A3 |
70 |
3D |
38 |
40 |
|
Число |
char f |
Вирівнюван ня |
long d |
long double a |
Отже, у ВПК ця структура представлена: 80 CC CC CC 4D 6F 76 63 68 CC CC CC C8 CC CC CC 38 CC CC CC 28 60 01 00 3D 0A D7 A3 70 3D 38 4016