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

Завдання 2

  • Представлення зміннихx,y

int x = 0x071216 = 181010;

181010 = 071216 = 0000 0111 0001 00102

ВПК: 12 0716

double y = -7.12;

-7.1210 = -7.1E16 = - 0111.0001 11102= -01.11 0001 11102 * 10^(0010);

s = 1

e = 12710 + 210 = 12910 =8116 = 1000 00012

m = 11 0001 1110 0000 0000 00002

0110 0000 0111 0001 1110 0000 0000 00002

6 0 7 1 E 0 0016

ВПК: 00 00 00 00 00 E0 71 6016

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

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

intx = 0x0712;

xВПК: 00 00 12 0716

v0ВПК: 0716

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

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

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

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

double y = -7.12;

-7.1210 = -7.1E16 = -0111.0001 11102= -01.11 0001 11102 * 10^(0010)

s = 1

e = 12710 + 210 = 12910 =8116 = 1000 00012

m = 11 0001 1110 0000 0000 00002

0110 0000 0111 0001 1110 0000 0000 00002

6 0 7 1 E 0 0016

ВПК: 00 E0 71 6016

X ВПК: EO 7116

Число: 71 E016 = 0111 0001 1110 00002

1000 1110 0001 11112

+ 1

1000 1110 0010 00002

8 E 2 016

8E2016 = 3638410

w3 = 3638410

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

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

double y = -7.12;

-7.1210 = -7.1E16 = -0111.0001 11102= -01.11 0001 11102 * 10^(0010)

s = 1

e = 12710 + 210 = 12910 =8116 = 1000 00012

m = 11 0001 1110 0000 0000 00002

0110 0000 0111 0001 1110 0000 0000 00002

6 0 7 1 E 0 0016

ВПК: 00 E0 71 6016

X ВПК: 60 0016

Число = 00 6016 = 0000 0000 0110 00002

1111 1111 1001 11112

+ 1

1111 1111 1010 00002

FFA016 = 6544010

w6 = 6544010 + 1310 = 6545310

4. Додаток

#include<iostream>

#include<conio.h>

usingnamespacestd;

voidmain()

{

//ЗАВДАННЯ №1

char x0=0;

unsignedint x1=7;

signedshortint x2=2;

unsignedint x3=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;

unsignedchar _x1[sizeof(x1)]; //Початок виведення ВПК x1

cout<<"Sizeof(x1): "<<sizeof(x1)<<endl;

cout<<"In PC: ";

for(int i=0; i<sizeof(x1); i++)

{

_x1[i] = *((char*)&x1 + i);

printf("%02Lx", _x1[i]);

}

printf("\n\n"); //Кінець виведення ВПК x1

/* 2 */

x3 = 'a' + x0 - x2;

unsignedchar _x3[sizeof(x3)]; //Початок виведення ВПК x3

cout<<"Sizeof(x3): "<<sizeof(x3)<<endl;

cout<<"In PC: ";

for(int i=0; i<sizeof(x3); i++)

{

_x3[i] = *((char*)&x3 + i);

printf("%02Lx", _x3[i]);

}

printf("\n\n"); //Кінець виведення ВПК x3

/* 3 */

x7 = x4 + x5 + x6 * 0.1;

unsignedchar _x7[sizeof(x7)]; //Початок виведення ВПК x7

cout<<"Sizeof(x7): "<<sizeof(x7)<<endl;

cout<<"In PC: ";

for(int i=0; i<sizeof(x7); i++)

{

_x7[i] = *((char*)&x7 + i);

printf("%02Lx", _x7[i]);

}

printf("\n\n"); //Кінець виведення ВПК x7

/* 4 */

x8 = x9 + x10 - x11*10;

unsignedchar _x8[sizeof(x8)]; //Початок виведення ВПК x8

cout<<"Sizeof(x8): "<<sizeof(x8)<<endl;

cout<<"In PC: ";

for(int i=0; i<sizeof(x8); i++)

{

_x8[i] = *((char*)&x8 + i);

printf("%02Lx", _x8[i]);

}

printf("\n\n"); //Кінець виведення ВПК x8

//ЗАВДАННЯ №2

int x = 1810;

double y = -7.12;

printf("Dec:\tHex:\tSymbol:\n");

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

printf("%d %x %c \n", v0,v0,v0);

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

printf("%d %x %c \n", v4,v4,v4);

printf("\nHex:\tUns:\tDec:\n");

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

printf("%x %u %d \n", w3,w3,w3);

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

printf("%x %u %d \n", w6,w6,w6);

unsignedchar _v0[sizeof(v0)];

cout<<"Sizeof(v0): "<<sizeof(v0)<<endl;

cout<<"In PC: ";

for(int i=0; i<sizeof(v0); i++)

{

_v0[i] = *((char*)&v0 + i);

printf("%02Lx", _v0[i]);

}

printf("\n");

unsignedchar _v4[sizeof(v4)];

cout<<"Sizeof(v4): "<<sizeof(v4)<<endl;

cout<<"In PC: ";

for(int i=0; i<sizeof(v4); i++)

{

_v4[i] = *((char*)&v4 + i);

printf("%02Lx", _v4[i]);

}

printf("\n");

unsignedchar _w3[sizeof(w3)];

cout<<"Sizeof(w3): "<<sizeof(w3)<<endl;

cout<<"In PC: ";

for(int i=0; i<sizeof(w3); i++)

{

_w3[i] = *((char*)&w3 + i);

printf("%02Lx", _w3[i]);

}

printf("\n");

unsignedchar _w6[sizeof(w6)];

cout<<"Sizeof(w6): "<<sizeof(w6)<<endl;

cout<<"In PC: ";

for(int i=0; i<sizeof(w6); i++)

{

_w6[i] = *((char*)&w6 + i);

printf("%02Lx", _w6[i]);

}

printf("\n");

getch();

}

12

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