
4. Результати виконання програми:
Висновки:
Ознайомившись з теоретичним матеріалом даної лабораторної роботи, а також застосувавши його на практиці я зрозумів явне та неявне перетворення типів даних в комп’ютері.
Додатки:
Програма для завдання 1: #include <iostream>
#include <conio.h>
using namespace std;
void main (void)
{
char x0 = 0x1994 - 10;
float x1 ;
unsigned short x2 = 0(8%8);
short x3 = 89 - 110;
bool x4 = 11%3 * 10;
x1 = x0 + x2 + x4+0x123;
x2 = x2 + x3 - 0123;
x3 = x1 + x2 * 0.123 + '1';
cout<<"===============IMPLICIT==============\n\n\n";
cout<<"x1 = x0 + x2 + x4+0x123 - "<<x1<<"\n============================================================================\n";
cout<<"x2 = x2 + x3 - 0123; - "<<x2<<"\n============================================================================\n";
cout<<"x3 = x1 + x2 * 0.123 + '1' - "<<x3<<"\n============================================================================\n";
getch();
}
Програма для завдання 2: #include<stdio.h>// Підключаємо відповідні бібліотеки
#include<conio.h>
#include<math.h>
void main (void){
const int x_0=11*8*100;
const int x_1= 013100;
const int x_2= 0x1310;
const int x_3= 010130;
const int x_4= 0x1013;
const double y_0 = 11*8/100.0;
const double y_1= - 11.8;
const double y_2= 8.11e+2;
const double y_3= - 11.8e1;
const double y_4= - 8.11e-1;
int x = x_1;
double y = y_3;
float v1 = static_cast<float> (x);
char v2 = static_cast<char> (x);
float v3 =*reinterpret_cast<float*> (&x)+1;
char v4 =*(reinterpret_cast<char*> (&x)+2)+3;
int w1 = static_cast<int>(y)+0X0E2;
long w2 =*reinterpret_cast<long*>(&y)+1;
short w3 =*(reinterpret_cast<short*>(&y)+2);
char w4 =*(reinterpret_cast<char*>(&y)+7)+3;
printf ("v1 = %f\n", v1);
printf ("v2 = %c\n", v2);
printf ("v3 = %f\n", v3);
printf ("v4 = %c\n", v4);
printf ("w1 = %d\n", w1);
printf ("w2 = %d\n", w2);
printf ("w3 = %d\n", w3);
printf ("w4 = %c\n", w4);
unsigned char *vi1=(unsigned char *)(&y); /* За допомогою вказівника отримуємо адресу на комірку пам’яті де записана відповідна змінна */
printf("i1 = ");
for (int i=0;i<sizeof(y);i++)
printf("%02X ",vi1[i]);
getch();
}