#include <iostream>
using namespace std;
int main()
{
int wybor ;
cin >> wybor ;
switch(wybor)
{
case 1 :
{
int liczba ;
int ilosc = 0 ;
int tymcz = 0 ;
int bufor2 ;
unsigned int maska = 0x80000000;
cin >> liczba ;
bufor2 = liczba ;
if (liczba > 0)
{
while (bufor2 != 0 )
{
bufor2 = bufor2 >> 1 ;
ilosc++ ;
}
bufor2 = liczba ;
while (tymcz != 0x80000000) // przesunienie na maxa do prawej
{
bufor2 = bufor2 << 1;
tymcz = bufor2 & maska ;
}
for (int i=0 ; i<ilosc ; i++)
{
tymcz = bufor2 & maska ;
if(tymcz == 0 )
{
cout << "0";
}
else if (tymcz == maska)
{
cout <<"1";
}
bufor2 = bufor2 << 1 ;
}
}
else if (liczba < 0) // dla liczb ujemnych
{
while(tymcz != 1) // sprawdzamy ile 0 jest z prawej
{
ilosc ++ ;
bufor2 = bufor2 >> 1 ;
tymcz = bufor2 & 1 ;
}
bufor2 = liczba ;
for (int i=0; i<32-ilosc; i++) // przepisujemy liczby od prawej bez koncowych zer
{
tymcz = bufor2 & maska ; // wyciągamy jakie sa kolejne bity
if (tymcz == 0)
{
cout <<"0" ;
}
else if (tymcz == maska)
{
cout <<"1";
}
bufor2 = bufor2 << 1 ;
}
}
break ;
}
case 2: // liczenie zer pomiedzy skrajnymi jedynkami
{
int zmienna = 0 ;
int licznik = 0;
unsigned int maska = 1 ;
int bufor = 0 ;
cin >> zmienna ;
bufor = zmienna & maska ;
while(bufor != 1) // wyznaczamy liczbe ktora jako pierwszy bit bedzie miala skrajna jedynke
{
zmienna = zmienna >> 1;
bufor = zmienna & maska ;
}
if (zmienna > 0 )
{
while(zmienna != 1) // petla dziala do czasu gdy zmienna bedzie miala ostatni bit na koncu czyli 1
{
bufor = zmienna & maska ;
if (bufor == 0) {licznik++ ;}
zmienna = zmienna >> 1 ;
}
}
else if (zmienna < 0)
{
while(zmienna != -1) // petla dziala do czasu gdy zmienna bedzie miala ostatni bit na koncu czyli -1
{
bufor = zmienna & maska ;
if (bufor == 0) {licznik++ ;}
zmienna = zmienna >> 1 ;
}
}
cout << licznik << endl;
break ;
}
case 3 :
{
int liczba ;
int maska = 0x80000000 ;
unsigned int maska2 =0x00000001 ;
int bufor=0 ;
int bufor2 =0;
int war = 0;
int war2 = 0 ;
int suma_mask = 0x80000001 ;
int suma_mask2 = 0 ;
int licznik = 0 ;
cin >> liczba ;
bufor = liczba ;
bufor2 = liczba ;
bool palindrom = true ;
if (liczba < 0) // dzialanie dla liczb ujemnych
{
for (int i=0; i<16 ; i++)
{
war = bufor & maska ; // sprawdzenie z lewej strony cyferki
war2 = bufor2 & maska2; // sprawdzenie z prawej strony cyferki
suma_mask2 = war | war2 ;
if (suma_mask2 == suma_mask || suma_mask2 == 0 )
{
bufor = bufor << 1 ;
bufor2 = bufor2 >> 1;
continue;
}
else
{
palindrom = false;
break ;
}
}
cout << palindrom ;
}
else if (liczba > 0) // dla liczby wiekszej od zera
{
while (bufor!=0)
{
bufor = bufor >> 1 ;
licznik++ ;
}
bufor = liczba ;
bufor = bufor << 32-licznik ; // przesuwamy max w lewo
for (int j=0 ; j<licznik ; j++)
{
war = bufor & maska ;
war2 = bufor2 & maska2 ;
suma_mask2 = war | war2 ;
if (suma_mask2 == suma_mask || suma_mask2 == 0 ) // dwie skrajne liczby sa takie same
{
bufor = bufor << 1 ;
bufor2 = bufor2 >> 1;
continue;
}
else // jezeli jakakolwiek liczba sie nie zgadza, to przerywamy dzialanie
{
palindrom = false;
break ;
}
}
cout << palindrom ;
}
break ;
}
default:
{
cout << "Wrong task number." ;
break ;
}
}
return 0 ;
}
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}