русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Получение внутреннего представления вещественного числа


Дата добавления: 2014-05-02; просмотров: 825; Нарушение авторских прав


union bytes{

double d;

unsigned char c [sizeof (double)];

};

 

int main ()

{

bytes ob={199.5};

for (int j=sizeof(double)-1; j>=0; j--)

{

cout << "byte " <<j << ": ";

for (int i=128; i; i>>=1) //проход по битам

if (i & ob.c[j]) //выделение бита

cout << "1";

else cout << "0";

cout << "\n";

}

_getch();

return 0;

}

 

Например, внутреннее представление числа -256.5: С0 70 08 00 00 00 00 00 16

в памяти значение хранится в виде: 00 00 00 00 00 08 70 С016

 

Объяснение, как получено это значение, дано в разделе «Внутреннее представление вещественных чисел» лекции 8.

 

Использование перечислимого типа для обращения к полям объединения[1]*

int main()

{ enum paytype {CARD, CHECK}; //две формы оплаты: значения 0 и 1

paytype ptype; //определение переменной перечисляемого типа

union

{char card[25];

long check;

} info;

 

Возможное присваивание значения объединению:

ptype = CARD; //переменная-флаг получает значение CARD (0)

strcpy (info.card, "12345"); //объединение получает свое значение через поле card

или

ptype = paytype(1); //переменная–флаг получает значение CHECK (1)

info.check= 105l; //объединение получает свое значение через поле check

Вывод значения переменной на экран:

switch (ptype) {

case CARD: cout <<"card:" << info.card<< endl; break;

case CHECK: cout <<"check:" << info.check<< endl; break;

}

_getch();

return 0;

}

 

Реализуем пример по-другому.

Создадим структуру, включающую объединение и поле перечислимого типа, характеризующее форму оплаты:

int main()

{

enum paytype {CARD, CHECK}; //две формы оплаты



struct{

paytype ptype; //поле-флаг включено в состав структуры

union

{char card[25];

long check;

} info;

} str;

 

Возможное присваивание значения объединению:

 

str.ptype = paytype(0); //заполняем поле-флаг объединения, как элемента структуры

strcpy(str.info.card, "12345");//объединение, как элемент структуры,

//получает свое значение через поле card

 

или

str.ptype = paytype(1); //заполняем поле-флаг объединения, как элемента структуры

str.info.check= 105l; //объединение, как элемент структуры,

//получает свое значение через поле check

 

Вывод на экран значения объединения как элемента переменной-структуры:

switch (str.ptype) {

case CARD: cout <<"card:" << str.info.card<< endl; break;

case CHECK: cout <<"check:" << str.info.check<< endl; break;

}

_getch();

return 0;

}



<== предыдущая лекция | следующая лекция ==>
Определение объединения и переменной объединяющего типа | Битовые поля структур и объединений. Определение битовых полей


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.