#include using std::cout; using std::cin; using std::endl; void dec2bin(int liczba) { int i=31, boolean = 0; while(i--) { if(liczba>>i & 1 & !boolean) //omijanie 0 na poczatku, az do pierwszej 1 boolean = 1; if(boolean) cout<<((liczba >> i) & 1); } } void palindrom(){ int liczba; cin>>liczba; int i=31,p,l; bool boolean = false; while(i--) { if(liczba>>i&1&!boolean) boolean=true; if(boolean){ //sprawdzanie czy jest palindromem for(p=0;p<16;p++){ } for(l=32,l>15;l--){ } if(l==p) cout<<"1"; else cout<<"0"; } } } int ileZer(int liczba2) { int i; int setBit = 1, poprzed = 0; //zamienia liczbe na binarna, aby sprawdzic ilosc 0 if (liczba2 == 0 || (liczba2 & (liczba2 - 1)) == 0) return -1; for ( i = 1; i <= sizeof(int) * 8; i++) { poprzed++; if ((liczba2 & setBit) == setBit) { setBit = setBit << 1; break; } setBit = setBit << 1; } int max = 0x80000000, aktualna = poprzed; //najnizszy mozliwy int w postaci 16stkowej, tzn 2147483648 for (int j = i + 1; j <= sizeof(int) * 8; j++) { aktualna++; if ((liczba2 & setBit) == setBit) { if (max < (aktualna - poprzed - 1)) max = aktualna - poprzed - 1; poprzed = aktualna; } setBit = setBit << 1; } return max; } int main() { int wybor; cin>>wybor; switch(wybor){ case 1: int liczba; cin>>liczba; dec2bin(liczba); break; case 2: int liczba2; cin>>liczba2; cout << ileZer(liczba2); break; case 3: palindrom(); break; default: cout<<"Wrong task number."; break; } return 0; }