Cout.precision(8);

q.a=-3.5;

cout.fill('0');

for(int i=7;i>=0;i--)

cout<<hex<<setw(2)<<int(q.u[i])<<' ';

cout<<endl;

//Âûâîä ìèíèìàëüíîãî è ìàêñèìàëüíîãî çíà÷åíèé

cout<<"min - max"<<endl;

for(int i=0;i<6;i++)

q.u[i]=0;

q.u[6]=16;

q.u[7]=0;

cout<<q.a<<" ";

for(int i=0;i<6;i++)

q.u[i]=255;

q.u[6]=239;

q.u[7]=127;

cout<<q.a<<endl;

 

 

#include <iostream>

using namespace std;

struct xx

{float y;

int p;

};

//Âíóòðåííåå ïðåäñòàâëåíèå ñòðóêòóðû òèïà XX

typedef xx tip;

const int L=sizeof(tip);

union {

tip a;

unsigned char u[L+1];

}q;

 

void inbitreal (tip n,char s[])

{//Âíóòðåííåå 2-îå ïðåäñòàâëåíèå ñòðóêòóðû òèïà XX

int i,j,m;

i=0; //0-oé áàéò

q.a=n; m=L<<3–1;

do

{unsigned char x;

x=q.u[i];

for( j=0;j<8;j++)

{s[m--]=(x&1)+'0';

x=x>>1;

}

i++;

}

while (i<L);

s[L<<3]=0;

}

void inreal16(tip n,char s[])

{//Âíóòðåííåå 16-ðè÷íîå ïðåäñòàâëåíèå öåëîãî.

int i, m;

unsigned char x;

char alf[]="0123456789ABCDEF";

i=0; m=L<<1–1;

do

{x=q.u[i++];

s[m--]=alf[x&15];

s[m--]=alf[(x>>4)];

}

while (i<L);

s[L<<1]='';

}

 

int main ()

{xx n;

char t[L<<3+1];

n.y=1.5; n.p=123;

inbitreal(n,t); cout<< n.y<<” ”<<n.p<< ": "<<t<<endl;

inreal16(n,t); cout<< n.y<<” ”<<n.p<< ": "<<t<<endl;

return 0;

}