Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КУРСАК МІЙ()()().doc
Скачиваний:
7
Добавлен:
09.12.2018
Размер:
249.86 Кб
Скачать

3.2.4 Структура

struct str6 {

unsigned long e:3;

unsigned long :2;

short :2;

signed short d;

unsigned :7;

double a;

short b:7;

char f;

char c[9];

}str;

str.a = 22.198;

str.b = 5 580;

str.c[0] = ‘K

str.c[1] = ‘i

str.c[2] = ‘n

str.c[3] = ‘d

str.c[4] = ‘r

str.d =240 660;

str.e =7 128;

str.f = 7;

Структура, полям якої не присвоєно ніяких значень має всі байти однаковими і їх початковим значенням є число 11002 = С16, тому це може впливати на відображення певних полів при виводі зображення структури в пам’яті.

Визначимо представлення в пам'яті комп’ютера окремо кожного поля:

Представлення кожного поля в пям’яті комп’ютера:

  1. Представлення дійсної змінної : double а = 22.19810;

Назва

типу

Іденти-фікатор

Діапазон значень

Внутрішній формат:

s–знак,e–експонента,m–мантиса

Значення числа

Розмір пам’яті в байтах

Дійсне подвійної точності

double

від 1.710-308

до 1.710308

1 біт 11 біт 52 біта

s

e

m

(-1)S1,m2e –1023

8

Перевід цілої частини:

2210 =>1616

Перевід дробової частини:

0,198 * 16 = 3.168 3

0,168 * 16 = 2,688 2

0.688 * 16 = 11,008 B

0.008 * 16 = 0,128 0

0.128 * 16 = 2,048 2

0.048 * 16 = 0,768 0

0.768 * 16 = 12,288 C

0.288 * 16 = 4,608 4

0.608 * 16 = 9,728 9

0.728 * 16 = 11,648 B

0.648 * 16 = 10,368 A

0.368 * 16 = 5,888 5

0.888 * 16 = 14,208 D

=0001 0110,0011 0010 1011 0000 0010 0000 1100 0100 1001 1011 1010 0101 11012

Нормалізація:

1.0110 0011 0010 1011 0000 0010 0000 1100 0100 1001 1011 1010 0101 11012* 100100

Заокруглення:

1.0110 0011 0010 1011 0000 0010 0000 1100 0100 1001 1011 1010 0101| 1101+ 1

1.0110 0011 0010 1011 0000 0010 0000 1100 0100 1001 1011 1010 0110

Визначення мантиси: m=0110 0011 0010 1011 0000 0010 0000 1100 0100 1001 1011 1010 0110

Визначення зміщеного порядку: е = 102310 + 410 = 102710 = 40316 = 100 0000 00112

Визначення знакового розряду: s=0 (бо число додатнє).

Схема внутрішнього представлення:

Збірка за схемою:

s

e

M

0

100 0000 0011

0110 0011 0010 1011 0000 0010 0000 1100 0100 1001 1011 1010 0110

В 16- ковій системі числення:

0100 0000 0011 0110 0011 0010 1011 0000 0010 0000 1100 0100 1001 1011 1010 01102=

= 40 36 32 B0 20 C4 9B A616

Відповідь: ВПК :A6 9B C4 20 B0 32 36 4016.

  1. Представлення змінної short b 5 580;

b = 5 58010 = 15 CC16

Відповідь: ВПК : CC 1516.

Представлення змінної char c[5]: str.c[0] = ‘K’ = 4B16

str.c[1] = ‘i’ = 6916

str.c[2] = ‘n’ = 6E16

str.c[3] = ‘d’ = 6416

str.c[4] = ‘r’ = 7216

В пам’яті комп’ютера рядок зберігатиметься як: Відповідь: ВПК : 4B 69 6E 64 71 CC CC CC CC16.

  1. Представлення змінної signed short d; d = 240 66010 = 3 AC 1416 = 1010 1100 0001 01002 = AC 1416

Відповідь: ВПК : 14 AC16.

  1. Представлення змінної char f;

f =710= 716

Відповідь: ВПК : 0716.

  1. Представлення змінної unsigned long e:3

e= 7 12810 = 1B D8;

оскільки виділено тільки 3 біти під змінну то вона набуде значення 0002

Відповідь: ВПК :016

Для розміщення даної структури в пам’яті комп’ютера вистачає 21 байт

struct str12 {

char :3;

float a;

int b:9;

unsigned e:3;

long d;

unsigned :2;

char c[8];

wchar_t f;

}str;

В і д п о в і д ь : В П К :

C8 CC CC CC CC CC 14 AC CC CC CC CC CC CC CC CC A6 9B C4 20 B0 32 36 40 CC CC 07 4B 69 6E 64 72 CC CC CC CC CC CC CC CC