ООП / 3 и 6 лабы / отчёт 6
.docxНациональный исследовательский институт «МИЭТ»
Факультет МП и ТК. Кафедра ВТ
Курс: «Объектно-ориентированное программирование» для групп МП-21, 22 и 23
Семинар №2.
«Доступ к данным в памяти их обработка»
Выполнил: студент группы МП-21
Павлов Роман
Проверил: Тельминов О. А.
Москва, 2013
Вариант №6.
В6. «Представление». Исследуете представление чисел signed и unsigned для типов данных char, int, long, float, double для 32-разрядной операционной системы: приведите максимально и минимально допустимые значения, соответствия характерным комбинациям (00..00, 10..00, 11..11 и др.) целым и дробным (float , double) числам. Продемонстрируете на примерах представление характерных дробных чисел.
Ход работы.
#include "stdafx.h"
#include <limits.h>
#include <iostream>
using namespace std;
int main()
{
union p{
signed char sc;
unsigned char uc;
signed int si;
unsigned int ui;
signed long sl;
unsigned long ul;
float f;
double d;} p1,p2,p3,p4,p5,p6,p7,p8;
p1.sl=LONG_MAX;
p2.sl=LONG_MIN;
p3.sc=CHAR_MAX;
p4.sc=CHAR_MIN;
p5.si=INT_MAX;
p6.si=INT_MIN;
p7.d=-0.456;
p8.f=7.0006;
cout <<"\nSigned char:\n"<<(int) p1.sc<<"\t"
<<(int) p2.sc<<"\t"
<<(int) p3.sc<<"\t"
<<(int) p4.sc<<"\t"
<<(int) p5.sc<<"\t"
<<(int) p6.sc<<"\t"
<<(int) p7.sc<<"\t"
<<(int) p8.sc<<"\n"
<<"\nUnsigned char:\n"<<(int) p1.uc<<"\t"
<<(int) p2.uc<<"\t"
<<(int) p3.uc<<"\t"
<<(int) p4.uc<<"\t"
<<(int) p5.uc<<"\t"
<<(int) p6.uc<<"\t"
<<(int) p7.uc<<"\t"
<<(int) p8.uc<<"\n"
<<"\nSigned int:\n"<<(int) p1.si<<"\t"
<<(int) p2.si<<"\t"
<<(int) p3.si<<"\t"
<<(int) p4.si<<"\t"
<<(int) p5.si<<"\t"
<<(int) p6.si<<"\t"
<<(int) p7.si<<"\t"
<<(int) p7.si<<"\t"
<<(int) p8.si<<"\n"
<<"\nUnsigned int:\n"<<(unsigned int) p1.ui<<"\t"
<<(unsigned int) p2.ui<<"\t"
<<(unsigned int) p3.ui<<"\t"
<<(unsigned int) p4.ui<<"\t"
<<(unsigned int) p5.ui<<"\t"
<<(unsigned int) p6.ui<<"\t"
<<(unsigned int) p7.ui<<"\t"
<<(unsigned int) p8.ui<<"\n"
<<"\nSigned long:\n"<<(long) p1.sl<<"\t"
<<(long) p2.sl<<"\t"
<<(long) p3.sl<<"\t"
<<(long) p4.sl<<"\t"
<<(long) p5.sl<<"\t"
<<(long) p6.sl<<"\t"
<<(long) p7.sl<<"\t"
<<(long) p8.sl<<"\n"
<<"\nUnsigned long:\n"<<(unsigned long) p1.ul<<"\t"
<<(unsigned long) p2.ul<<"\t"
<<(unsigned long) p3.ul<<"\t"
<<(unsigned long) p4.ul<<"\t"
<<(unsigned long) p5.ul<<"\t"
<<(unsigned long) p6.ul<<"\t"
<<(unsigned long) p7.ul<<"\t"
<<(unsigned long) p8.ul<<"\n"
<<"\nFloat:\n"<<(float) p1.f<<"\t"
<<(float) p2.f<<"\t"
<<(float) p3.f<<"\t"
<<(float) p4.f<<"\t"
<<(float) p5.f<<"\t"
<<(float) p6.f<<"\t"
<<(float) p7.f<<"\t"
<<(int) p8.f<<"\n"
<<"\nDouble:\n"<<(double) p1.d<<"\t"
<<(double) p2.d<<"\t"
<<(double) p3.d<<"\t"
<<(double) p4.d<<"\t"
<<(double) p5.d<<"\t"
<<(double) p6.d<<"\t"
<<(double) p7.d<<"\t"
<<(int) p8.d << endl;
system("pause");
return 0;
}