Автор работы: Пользователь скрыл имя, 04 Мая 2012 в 13:30, лабораторная работа
Разработать программу, которая выводит на экран внутреннее (машинное) представление данных типов: long int, double, struct.
Міністерство освіти і науки України
Національний технічний університет
“Харківський
політехнічний інститут”
ЦДДП
Кафедра
______________________________
Лабораторная
работа №1
з курсу
Обчислювальні алгоритми та структури даних
Тема:
Внутрішнє подання даних
Студентки 2-го курсу
Група КІТЗП-10Д
Сидоренко Н.В.
м.
Полтава, вул. Боженко 42/18 кв. 5
Полтава 2011
Вариант 8
Тема: Внутреннее представление данных
Постановка задачи
Разработать
программу, которая выводит на экран внутреннее
(машинное) представление данных типов:
long int, double, struct.
Решение:
Исходный код программы, которая выводит на экран внутреннее (машинное) представление данных:
#include <iostream>
using namespace std;
// ф-ция
печатает двоичное
void binary_uchar_print(unsigned char li)
{
// маска указывает какой бит числа показать, старшый бит
unsigned displayMask = (1 << 7) ;
for(int i = 0 ; i < 8 ; i++)
{
cout<<( (li & displayMask) ? '1':'0'); //отображаем старший бит
li<<=1; //сдвигаем число на один бит влево
}
cout<<" ";
}
// ф-ция
печатает двоичное
template <typename T>
void binary_print(T li)
{
unsigned char * p = (unsigned char *)&li; //адресс li представляем как адрес одного байта
for(int i = sizeof(li)-1 ; i >= 0 ; i--)//перебираем каждый байт
{
binary_uchar_
cout<<" ";
if(i % 4 == 0)
cout<<endl;
}
}
void main()
{
long int long_int;
cout<<"input long int value: ";
cin>>long_int;
cout<<"binary represantation:\n";
binary_print(long_int); //печатаем представление
данных типа long int
double d;
cout<<"\ninput double value: ";
cin>>d;
cout<<"binary represantation:\n";
binary_print(d); //печатаем представление
данных типа double
struct testStruct
{
int a;
float b;
char c;
}
testObject = {33,12.8f,'A'} ;
cout<<"\nbinary represantation:\n";
binary_print(testObject)
}
Результаты роботы программы: