Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LR2.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
206 Кб
Скачать
☆
  1. Постановка задачі

Завдання 1

Визначити, які неявні перетворення типів будуть відбуватись при обчисленнях. З’ясувати,чи відбудуться втрати значимості даних.Хід міркувань підтвердити програмними результатами. В звіті пояснити кожне перетворення і метод, яким воно здійснено.

Тестування провести для таки значень змінних:

char x0=0;

unsignedint x1=7;

signedshortint x2=2;

unsignedintx3=3;

signedshortint x4=4;

char x5=5;

unsignedchar x6=6;

unsignedchar x7=7;

char x8=8;

unsignedchar x9=9;

signedint x10=10;

unsignedshortint x11=11;

/* 1 */ x1 = x1 - 0xFFFFFFFA;

/* 2 */ x3 = 'a' + x0 - x2;

/* 3 */ x7 = x4 + x5 + x6 * 0.1;

/* 4 */ x8 = x9 + x10 - x11*10;

Завдання 2

Визначити, які явні і неявні перетворення типів будуть відбуватись. Результати обчислень підтвердити програмними результатами. В звіті пояснити кожне перетворення і кожний отриманий результат.

int x = 0x0712;

double y = -7.12;

char v0=*reinterpret_cast<char*> (&x) +3;

char v4 =static_cast<char> (x) + 22;

shortw3 =*reinterpret_cast<short*>(&y)+1;

short w6=*(reinterpret_cast<short*>(&y)+3)+13;

Завдання 1

  • Представленнязмінноїx1

unsignedint x1=7;

x1 = x1 - 0xFFFFFFFA;

x1 = 7 – 429496729010 = - 429496728310= - FFFFFFF316

- FFFFFFF316 = - 1111 1111 1111 1111 1111 1111 1111 00112

1111 1111 1111 1111 1111 1111 1111 00112п.к.

0000 0000 0000 0000 0000 0000 0000 11002о.к.

+1

0000 0000 0000 0000 0000 0000 0000 1101 д.к.

00000 0 0D

ВПК: 0D 00 00 0016

  • Представлення змінної x3

unsignedint x3=3;

x3 = 'a' + x0 - x2;

'a' = 9710 = 6116

ВПК: 6116

char->signedlongint

ВПК: 61 00 00 0016

char x0=0;

ВПК: 0016

char->unsignedint

ВПК:00 00 00 0016

signedshortint x2=2;

ВПК:02 0016

signedshortint->unsignedint

ВПК: 02 00 00 0016

x3 = 97 + 0 – 2 = 9510 = 5F16

0000 0000 0000 0000 0000 0000 0101 11112

0 0 0 0 0 0 5 F16

ВПК:5F 00 00 0016

  • Представлення змінної x7

unsignedchar x7=7;

x7 = x4 + x5 + x6 * 0.1;

signedshortintx4=4;

ВПК: 04 0016

signedshortint ->unsignedchar

ВПК:0416

charx5=5;

ВПК:0516

char->unsignedchar

ВПК:0516

unsignedcharx6=6;

ВПК:0616

double = 0.1;

0.1 = 0.1(9)16 = 0.1(1001)2

01.1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 10012·10-1

s = 0

e = 1023 – 1 = 102210 = 3FE16 = 011 1111 11102

m = 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001

0011 1111 1110 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 10012

3 F E 9 9 9 9 9 9 9 9 9 9 9 9 916

ВПК:3F E9 99 99 99 99 99 9916

double ->unsignedchar

ВПК:0016

x7 = 4 + 5 + 6 * 0.1 = (9.6) = 910 = 916

0000 0000 0000 0000 0000 0000 0000 10012

0 0 0 0 0 0 0 916

ВПК:0916

  • Представлення змінної x8

char x8=8;

x8 = x9 + x10 - x11*10;

unsignedcharx9=9;

ВПК:0916

unsignedchar->char

ВПК: 0916

signedint x10=10;

ВПК:0A 00 00 0016

signedint ->char

ВПК:0A16

unsignedshortint x11=11;

ВПК:0B 0016

unsignedshortint ->char

ВПК:0B16

x8 = 9 + 10 – 11*10 = - 9110 = A516

0000 0000 1010 01012

F F A 516

ВПК:A516

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