#include <iostream>
using namespace std;
string sprawdzak( string *nazwa)
{
if (*nazwa=="0000")
*nazwa="0";
else if (*nazwa=="0001")
*nazwa="1";
else if (*nazwa=="0010")
*nazwa="2";
else if (*nazwa=="0011")
*nazwa="3";
else if (*nazwa=="0100")
*nazwa="4";
else if (*nazwa=="0101")
*nazwa="5";
else if (*nazwa=="0110")
*nazwa="6";
else if (*nazwa=="0111")
*nazwa="7";
else if (*nazwa=="1000")
*nazwa="8";
else if (*nazwa=="1001")
*nazwa="9";
else if (*nazwa=="1010")
*nazwa="a";
else if (*nazwa=="1011")
*nazwa="b";
else if (*nazwa=="1100")
*nazwa="c";
else if (*nazwa=="1101")
*nazwa="d";
else if (*nazwa=="1110")
*nazwa="e";
else if (*nazwa=="1111")
*nazwa="f";
return *nazwa;
}
int main()
{
float liczba, mantiska;
string s,exp_s, exp_s_odw, manta,calosc;
int ile_testow,krok,exp;
string bitek[8];
string bitka[4];
cin>>ile_testow;
for (int z=0;z<ile_testow;z++)
{
for (int x=0;x<4;x++)
{
bitka[x]="";
}
for (int x=0;x<8;x++)
{
bitek[x]="";
}
exp_s="";
exp_s_odw="";
manta="";
calosc="";
exp=127;
krok=0;
cin>>liczba;
if (liczba<0)
{
liczba=-liczba;
s="1";
}
else
s="0";
if (liczba==0)
cout<<"0 0 0 0"<<endl;
else if (liczba==0)
cout<<"80 0 0 0"<<endl;
else if (liczba>=1)
{
while(liczba>=2)
{
krok++;
liczba=liczba/2;
}
exp=exp+krok;
int exp_z=exp;
while(exp!=0)
{
if ((exp)%2==1)
exp_s=exp_s+"1";
else if ((exp)%2==0)
exp_s=exp_s+"0";
exp=exp/2;
}
if (exp_z==127)
exp_s=exp_s+"0";
int d_exp = exp_s.length();
for (int i=d_exp-1; i>=0; i--)
{
exp_s_odw=exp_s_odw+exp_s[i];
}
mantiska=liczba-1;
for(int i=0; i<23; i++)
{
mantiska=mantiska*2;
if (mantiska>=1)
{
manta=manta+"1";
mantiska=mantiska-1;
}
else if (mantiska<1)
{
manta=manta+"0";
}
}
calosc=s+exp_s_odw+manta;
int k=0;
for (int i=0; i<8; i++)
{
for (int j=0; j<4; j++)
{
bitek[i]=bitek[i]+calosc[k];
k++;
}
sprawdzak(&bitek[i]);
}
int c=0;
for (int i=0; i<4; i++)
{
bitka[i]=bitek[c]+bitek[c+1];
if (bitka[i]=="00")
bitka[i]="0";
cout<<bitka[i]<<" ";
c=c+2;
}
cout<<endl;
}
else if (liczba<1)
{
while(liczba<1)
{
krok--;
liczba=liczba*2;
}
exp=exp+krok;
while(exp!=0)
{
if ((exp)%2==1)
exp_s=exp_s+"1";
else if ((exp)%2==0)
exp_s=exp_s+"0";
exp=exp/2;
}
int d_exp = exp_s.length();
while(d_exp<8)
{
exp_s=exp_s+"0";
d_exp=exp_s.length();
}
for (int i=d_exp-1; i>=0; i--)
{
exp_s_odw=exp_s_odw+exp_s[i];
}
mantiska=liczba-1;
for(int i=0; i<23; i++)
{
mantiska=mantiska*2;
if (mantiska>=1)
{
manta=manta+"1";
mantiska=mantiska-1;
}
else if (mantiska<1)
{
manta=manta+"0";
}
}
calosc=s+exp_s_odw+manta;
int k=0;
for (int i=0; i<8; i++)
{
for (int j=0; j<4; j++)
{
bitek[i]=bitek[i]+calosc[k];
k++;
}
sprawdzak(&bitek[i]);
}
int c=0;
for (int i=0; i<4; i++)
{
bitka[i]=bitek[c]+bitek[c+1];
if (bitka[i]=="00")
bitka[i]="0";
cout<<bitka[i]<<" ";
c=c+2;
}
cout<<endl;
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpzdHJpbmcgc3ByYXdkemFrKCBzdHJpbmcgKm5hendhKQp7CiAgICAgICAgICAgIGlmICgqbmF6d2E9PSIwMDAwIikKICAgICAgICAgICAgICAgICpuYXp3YT0iMCI7CiAgICAgICAgICAgIGVsc2UgaWYgKCpuYXp3YT09IjAwMDEiKQogICAgICAgICAgICAgICAgKm5hendhPSIxIjsKICAgICAgICAgICAgZWxzZSBpZiAoKm5hendhPT0iMDAxMCIpCiAgICAgICAgICAgICAgICAqbmF6d2E9IjIiOwogICAgICAgICAgICBlbHNlIGlmICgqbmF6d2E9PSIwMDExIikKICAgICAgICAgICAgICAgICpuYXp3YT0iMyI7CiAgICAgICAgICAgIGVsc2UgaWYgKCpuYXp3YT09IjAxMDAiKQogICAgICAgICAgICAgICAgKm5hendhPSI0IjsKICAgICAgICAgICAgZWxzZSBpZiAoKm5hendhPT0iMDEwMSIpCiAgICAgICAgICAgICAgICAqbmF6d2E9IjUiOwogICAgICAgICAgICBlbHNlIGlmICgqbmF6d2E9PSIwMTEwIikKICAgICAgICAgICAgICAgICpuYXp3YT0iNiI7CiAgICAgICAgICAgIGVsc2UgaWYgKCpuYXp3YT09IjAxMTEiKQogICAgICAgICAgICAgICAgKm5hendhPSI3IjsKICAgICAgICAgICAgZWxzZSBpZiAoKm5hendhPT0iMTAwMCIpCiAgICAgICAgICAgICAgICAqbmF6d2E9IjgiOwogICAgICAgICAgICBlbHNlIGlmICgqbmF6d2E9PSIxMDAxIikKICAgICAgICAgICAgICAgICpuYXp3YT0iOSI7CiAgICAgICAgICAgIGVsc2UgaWYgKCpuYXp3YT09IjEwMTAiKQogICAgICAgICAgICAgICAgKm5hendhPSJhIjsKICAgICAgICAgICAgZWxzZSBpZiAoKm5hendhPT0iMTAxMSIpCiAgICAgICAgICAgICAgICAqbmF6d2E9ImIiOwogICAgICAgICAgICBlbHNlIGlmICgqbmF6d2E9PSIxMTAwIikKICAgICAgICAgICAgICAgICpuYXp3YT0iYyI7CiAgICAgICAgICAgIGVsc2UgaWYgKCpuYXp3YT09IjExMDEiKQogICAgICAgICAgICAgICAgKm5hendhPSJkIjsKICAgICAgICAgICAgZWxzZSBpZiAoKm5hendhPT0iMTExMCIpCiAgICAgICAgICAgICAgICAqbmF6d2E9ImUiOwogICAgICAgICAgICBlbHNlIGlmICgqbmF6d2E9PSIxMTExIikKICAgICAgICAgICAgICAgICpuYXp3YT0iZiI7CiAgICAgICAgICAgICAgICByZXR1cm4gKm5hendhOwp9CmludCBtYWluKCkKewogICAgZmxvYXQgbGljemJhLCBtYW50aXNrYTsKICAgIHN0cmluZyBzLGV4cF9zLCBleHBfc19vZHcsIG1hbnRhLGNhbG9zYzsKICAgIGludCBpbGVfdGVzdG93LGtyb2ssZXhwOwogICAgc3RyaW5nIGJpdGVrWzhdOwogICAgc3RyaW5nIGJpdGthWzRdOwogICAgY2luPj5pbGVfdGVzdG93OwogICAgZm9yIChpbnQgej0wO3o8aWxlX3Rlc3Rvdzt6KyspCiAgICB7CiAgICBmb3IgKGludCB4PTA7eDw0O3grKykKICAgIHsKICAgICAgICBiaXRrYVt4XT0iIjsKICAgIH0KICAgIGZvciAoaW50IHg9MDt4PDg7eCsrKQogICAgewogICAgICAgIGJpdGVrW3hdPSIiOwogICAgfQogICAgZXhwX3M9IiI7CiAgICBleHBfc19vZHc9IiI7CiAgICBtYW50YT0iIjsKICAgIGNhbG9zYz0iIjsKICAgIGV4cD0xMjc7CiAgICBrcm9rPTA7CiAgICBjaW4+PmxpY3piYTsKICAgIGlmIChsaWN6YmE8MCkKICAgIHsKICAgICAgICBsaWN6YmE9LWxpY3piYTsKICAgICAgICBzPSIxIjsKICAgIH0KICAgIGVsc2UKICAgICAgICBzPSIwIjsKICAgIGlmIChsaWN6YmE9PTApCiAgICAgICAgY291dDw8IjAgMCAwIDAiPDxlbmRsOwogICAgZWxzZSBpZiAobGljemJhPT0wKQogICAgICAgIGNvdXQ8PCI4MCAwIDAgMCI8PGVuZGw7CiAgICBlbHNlIGlmIChsaWN6YmE+PTEpCiAgICB7CiAgICAgICAgd2hpbGUobGljemJhPj0yKQogICAgICAgIHsKICAgICAgICAgICAga3JvaysrOwogICAgICAgICAgICBsaWN6YmE9bGljemJhLzI7CiAgICAgICAgfQogICAgICAgIGV4cD1leHAra3JvazsKICAgICAgICBpbnQgZXhwX3o9ZXhwOwogICAgICAgIHdoaWxlKGV4cCE9MCkKICAgICAgICB7CiAgICAgICAgICAgIGlmICgoZXhwKSUyPT0xKQogICAgICAgICAgICAgICAgZXhwX3M9ZXhwX3MrIjEiOwogICAgICAgICAgICBlbHNlIGlmICgoZXhwKSUyPT0wKQogICAgICAgICAgICAgICAgZXhwX3M9ZXhwX3MrIjAiOwogICAgICAgICAgICBleHA9ZXhwLzI7CiAgICAgICAgfQogICAgICAgIGlmIChleHBfej09MTI3KQogICAgICAgICAgICBleHBfcz1leHBfcysiMCI7CiAgICAgICAgaW50IGRfZXhwID0gZXhwX3MubGVuZ3RoKCk7CiAgICAgICAgZm9yIChpbnQgaT1kX2V4cC0xOyBpPj0wOyBpLS0pCiAgICAgICAgewogICAgICAgICAgICBleHBfc19vZHc9ZXhwX3Nfb2R3K2V4cF9zW2ldOwogICAgICAgIH0KICAgICAgICBtYW50aXNrYT1saWN6YmEtMTsKICAgICAgICBmb3IoaW50IGk9MDsgaTwyMzsgaSsrKQogICAgICAgIHsKICAgICAgICAgICAgbWFudGlza2E9bWFudGlza2EqMjsKICAgICAgICAgICAgaWYgKG1hbnRpc2thPj0xKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBtYW50YT1tYW50YSsiMSI7CiAgICAgICAgICAgICAgICBtYW50aXNrYT1tYW50aXNrYS0xOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYgKG1hbnRpc2thPDEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG1hbnRhPW1hbnRhKyIwIjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYWxvc2M9cytleHBfc19vZHcrbWFudGE7CiAgICAgICAgaW50IGs9MDsKICAgICAgICBmb3IgKGludCBpPTA7IGk8ODsgaSsrKQogICAgICAgIHsKICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPDQ7IGorKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgYml0ZWtbaV09Yml0ZWtbaV0rY2Fsb3NjW2tdOwogICAgICAgICAgICAgICAgaysrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHNwcmF3ZHphaygmYml0ZWtbaV0pOwogICAgICAgIH0KICAgICAgICBpbnQgYz0wOwogICAgICAgIGZvciAoaW50IGk9MDsgaTw0OyBpKyspCiAgICAgICAgewogICAgICAgICAgICBiaXRrYVtpXT1iaXRla1tjXStiaXRla1tjKzFdOwogICAgICAgICAgICBpZiAoYml0a2FbaV09PSIwMCIpCiAgICAgICAgICAgICAgICBiaXRrYVtpXT0iMCI7CiAgICAgICAgICAgIGNvdXQ8PGJpdGthW2ldPDwiICI7CiAgICAgICAgICAgIGM9YysyOwogICAgICAgIH0KICAgICAgICBjb3V0PDxlbmRsOwogICAgfQogICAgZWxzZSBpZiAobGljemJhPDEpCiAgICB7CiAgICAgICAgd2hpbGUobGljemJhPDEpCiAgICAgICAgewogICAgICAgICAgICBrcm9rLS07CiAgICAgICAgICAgIGxpY3piYT1saWN6YmEqMjsKICAgICAgICB9CiAgICAgICAgZXhwPWV4cCtrcm9rOwogICAgICAgIHdoaWxlKGV4cCE9MCkKICAgICAgICB7CiAgICAgICAgICAgIGlmICgoZXhwKSUyPT0xKQogICAgICAgICAgICAgICAgZXhwX3M9ZXhwX3MrIjEiOwogICAgICAgICAgICBlbHNlIGlmICgoZXhwKSUyPT0wKQogICAgICAgICAgICAgICAgZXhwX3M9ZXhwX3MrIjAiOwogICAgICAgICAgICBleHA9ZXhwLzI7CiAgICAgICAgfQogICAgICAgIGludCBkX2V4cCA9IGV4cF9zLmxlbmd0aCgpOwogICAgICAgIHdoaWxlKGRfZXhwPDgpCiAgICAgICAgewogICAgICAgICAgICBleHBfcz1leHBfcysiMCI7CiAgICAgICAgICAgIGRfZXhwPWV4cF9zLmxlbmd0aCgpOwogICAgICAgIH0KICAgICAgICBmb3IgKGludCBpPWRfZXhwLTE7IGk+PTA7IGktLSkKICAgICAgICB7CiAgICAgICAgICAgIGV4cF9zX29kdz1leHBfc19vZHcrZXhwX3NbaV07CiAgICAgICAgfQogICAgICAgIG1hbnRpc2thPWxpY3piYS0xOwogICAgICAgIGZvcihpbnQgaT0wOyBpPDIzOyBpKyspCiAgICAgICAgewogICAgICAgICAgICBtYW50aXNrYT1tYW50aXNrYSoyOwogICAgICAgICAgICBpZiAobWFudGlza2E+PTEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG1hbnRhPW1hbnRhKyIxIjsKICAgICAgICAgICAgICAgIG1hbnRpc2thPW1hbnRpc2thLTE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiAobWFudGlza2E8MSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbWFudGE9bWFudGErIjAiOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhbG9zYz1zK2V4cF9zX29kdyttYW50YTsKICAgICAgICBpbnQgaz0wOwogICAgICAgIGZvciAoaW50IGk9MDsgaTw4OyBpKyspCiAgICAgICAgewogICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8NDsgaisrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBiaXRla1tpXT1iaXRla1tpXStjYWxvc2Nba107CiAgICAgICAgICAgICAgICBrKys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc3ByYXdkemFrKCZiaXRla1tpXSk7CiAgICAgICAgfQogICAgICAgIGludCBjPTA7CiAgICAgICAgZm9yIChpbnQgaT0wOyBpPDQ7IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIGJpdGthW2ldPWJpdGVrW2NdK2JpdGVrW2MrMV07CiAgICAgICAgICAgIGlmIChiaXRrYVtpXT09IjAwIikKICAgICAgICAgICAgICAgIGJpdGthW2ldPSIwIjsKICAgICAgICAgICAgY291dDw8Yml0a2FbaV08PCIgIjsKICAgICAgICAgICAgYz1jKzI7CiAgICAgICAgfQogICAgICAgIGNvdXQ8PGVuZGw7CiAgICB9CiAgICB9CiAgICByZXR1cm4gMDsKfQo=