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;
}