Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursova_MOVCHKO.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
190.25 Кб
Скачать

2.1.4. Дійсний тип

float d1 = -240.24e-10 = -240.24 * 10-10 = -0.000000024024;

Переведем число у 16 та 2 СЧ:

0.000000024024*16= 0.000000384384; 0.000000384384*16=0.000006150144;

0.000006150144 *16= 0.000098402304; 0.000098402304*16= 0.001574451264;

0.001574451264*16=0,025190989824;

0,025190989824*16=0,403055837184; 0,403055837184*16=6,448893394944;

0.448893394944*16=7.18229432; 0. 18229432 *16 = 2.91670291;

0.91670291*16=14,66724656; 0.66724656*16=10,67594496;0.67594496*16=10…;

0.81511936*16=13….

-0.00000002402410 = -0.000000672EAAD16 = 0000.0000 0000 0000 0000 0000 0000 0110 0111 0010 1110 1010 1010 1101 00002

Тип float займає ВПК 4 байт (32 біт)

З них 8 біт виділяється під експоненту, 1 біт під знак числа і решта 23 під мантису.

Необхідно визначити значення m (мантиса), s(знак) та e(експонента).

s = 1, бо число відємне.

1.100 1110 0101 1101 0101 0101 1010

Нормалізуємо число:

1.100 1110 0101 1101 0101 0101 1010 2* 10-11010

Врахували заокруглення і те ,що для мантиси виділяється 23 біти , добавившии 1 до числа:

1. 100 1110 0101 1101 0101 01102 * 10-11010

Знайдемо експоненту е = 12710 -26 = 10110 = 6516 = 0110 01012

Знайдемо мантису m:

m = 100 1110 0101 1101 0101 0110

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

1біт

8 біт

23 біта

s

e

m

1

0110 0101

100 1110 0101 1101 0101 0110

1011 0010 1100 1110 0101 1101 0101 0110=B2 СE 5D 5616

Тепер для отримання значення числа ВПК, необхідно обернути його побайтно, бо ВПК числа типу float у зворотньому порядку розміщення байт числа.

Отже, ВПК (d1)- 56 5D CE B216

2.2. Завдання 2. Внутрішні формати похідних типів

Визначити внутрішнє представлення в пам’яті комп’ютера даних похідних типів.

2.2.1. Представлення рядку символів в пам’яті комп’ютера.

char *string19 = "\xcb\34\\\xffh 12 \4d4\\\\\n";

Та виконати наступні переприсвоювання:

string19[0] = ‘3’;

string19 [2] = ‘1’;

string19 [4] = ‘2’;

string19 [6] = ‘3’;

string19 [8] = ‘9’;

string19 [10] = ‘9’;

string19 [12] = ‘8’;

string19 [14] = ‘8’;

Номер байту

0

1

2

3

4

5

6

7

8

9

10

До переприсвоєння

\xcb

\34

\\

\xff

h

(sp)

(sp)

1

2

(sp)

\4

Після переприсвоєння

3

\34

1

\xff

2

(sp)

3

1

9

(sp)

9

Код ASCII

51

28

49

92

50

32

51

49

57

32

57

У 16 сч

33

1C

31

FF

32

20

33

31

39

20

39

Номер байту

11

12

13

14

15

16

До переприсвоєння

d

4

\\

\\

\n

\0

Після переприсвоєння

d

8

\\

8

\n

\0

Код ASCII

100

56

92

56

10

00

У 16 сч

64

38

5C

38

0A

0

Отже, в результаті пере присвоєння:

33 1C 31 FF 32 20 33 31 39 20 39 20 39 64 38 5C 38 0A16 + термінальний нуль 0016

ВПК(string19): 33 1C 31 FF 32 20 33 31 39 20 39 20 39 64 38 5C 38 0A 00 16

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]