МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
/
Кафедра ЕОМ
"Представлення в пам’яті комп’ютера
цілих та дійсних типів даних"
лабораторна робота № 1
з дисципліни
" Програмування. Частина III.
Структури даних та алгоритми "
1.МЕТА РОБОТИ
Дослідження внутрішнього представлення в пам’яті комп’ютера базових типів даних статичної структури.
2.ІНДИВІДУАЛЬНЕ ЗАВДАННЯ НА ЛАБОРАТОРНУ РОБОТУ
Дослідити внутрішнє представлення в пам’яті комп’ютера цілих та дійсних типів даних.
Розглянути наступні базові типи даних:
int i1 , і2;
float f1 , f2;
i1 = 75; і2 = -375;
f1=117.116 ; f2 = -234.232;
3.Алгоритм розв’язання задачі.
Ми повинні показати представлення в пам’яті комп’ютера цілих та дійсних типів даних, з якими оперує наша програма. Алгоритм полягає в впорядкованому зчитуванні байтів збережених у памяті комп’ютера, за допомогою вказівників та посилань.
В па’мяті комп’ютера змінна типу float займає 4 байти, в яких один біт виділяється під знак, 8- під порядок,23- під мантису.
4.Система тестів
4.1
Додатнє число 75 типу int в пам'яті комп’ютера зберігається в прямому двійковому коді і займає 4 байти: 0000 0000 0000 0000 0000 0000 0100 1011
В пам’яті комп’ютера цілі числа зберігаються у зворотному порядку розміщення байт числа:
0100 1011 0000 0000 0000 0000 0000 0000
Результат в 16-ковій системі числення: 4B 00 00 00.
4.2
Від'ємне число -375 типу long int в пам'яті комп’ютера зберігається в доповняльному двійковому коді і займає 4 байти: - 37510 = -17716 = - 2
0000 0000 0000 0000 0000 0001 0111 0111 - прямий код;
1111 1111 1111 1111 1111 1110 1000 1000 - обернений код;
+ 1
1111 1111 1111 1111 1111 1110 1000 1001 - доповняльний код;
F F F F F E 8 9 - в 16- ковій системі числення
В пам’яті комп’ютера зберігається у зворотному порядку розміщення байт числа:
1001 1000 1110 1111 1111 1111 1111 1111
Результат в 16- ковій системі числення: 89 FE FF FF.
4.3
Розглянемо, як в пам'яті комп’ютера зберігається додатнє число 117,116 типу float .
Перевід цілої частини:
117/16=7 остача 5
7/16=0 остача 7
=> 117 10 =75 16
Перевід дробової частини:
0, 116 * 16 = 1,856
0, 856 * 16 = 13,696 (1310 = D16)
0, 696 * 16 = 11,136 (1110 = B16)
0, 136 * 16 = 2,176
0,176 * 16 = 2,816
=> 0,116 10 = 0,1DB22 16
Отже: 117,116 10 = 75, 1DB22 16 = 0111 0101, 0001 1101 1011 0010 0010 2
Нормалізація: 01,11 0101 0001 1101 1011 0010 0010 2 * 100110
Заокруглення:
1,11 0101 0001 1101 1011 0010 0│01
+ 0
1,11 0101 0001 1101 1011 0010 0
Визначення мантиси: m=11 0101 0001 1101 1011 0010 0
Визначення зміщеного порядку: е = 12710 + 610 = 133 10 = 85 16 = 1000 0101 2
Визначення знакового розряду: s=0 (бо число додатнє).
Схема внутрішнього представлення:
s
e
m
1 біт
8 біт
23 біт
Зборка за схемою:
s
e
m
0
1000 0101
110 1010 0011 1011 0110 0100
В 16- ковій системі 0100 0010 1110 1010 0011 1011 0110 01002=42 EA3B 64 16
В пам’яті комп’ютера буде зберігатися у зворотному порядку розміщення байт числа:
0110 0100 0011 1011 1110 1010 0100 0010
Результат в 16- ковій системі числення: 64 3B EA 42
4.4
Представлення змінної f2:
f2=-234.232
Перевід цілої частини:
-23410=-EA16
Перевід дробової частини:
0, 232 * 16 =3,712
0, 712 * 16 = 11,392 (1110 = B16)
0, 392 * 16 = 6,272
0, 272 * 16 = 4,352
0,352 * 16 = 5,96
=> 0.232 10 = 0,3B645 16
Отже: -234.23210 = -EA, 3B64516 = 1110 1010,0011 1011 0110 0100 01012
Нормалізація: 1,110 ...