void stan_niski(unsigned short &rejestr, int bit_niski) { rejestr &= ~(1 << bit_niski); } void stan_wysoki(unsigned short &rejestr, int bit_wysoki) { rejestr |= (1 << bit_wysoki); } char* wypisz(unsigned short rej) { static char bufor[16] = { 0 }; unsigned short n = 0; n = sprintf(bufor, "", rej); for (int i = 15; i >= 0; i--) n += sprintf(&bufor[n], "%d ", static_cast(rej & (1 << i))); return bufor; } int main() { unsigned short rejestr = 759; bool koniec = false; int wybor; int bit_niski; int bit_wysoki; printf("Rejestr przed ustawieniem : %s", wypisz(rejestr)); cout << endl; do { cout << ("Co chcesz zrobic?") << endl; cout << ("1. Ustawienie wybranego bitu na stan niski ") << endl; cout << ("2. Ustawienie wybranego bitu na stan wysoki ") << endl; cout << ("3. Zakoncz ") << endl; cin >> wybor; switch (wybor) { case(1): { cout << ("Ktory bit chcesz ustawic na stan niski? :"); cin >> bit_niski; stan_niski(rejestr, bit_niski); cout << ("Rejestr po ustawieniu ")<< wypisz(rejestr) << endl; break; } case(2): { cout << ("Ktory bit chcesz ustawic na stan wysoki? :"); cin >> bit_wysoki; stan_wysoki(rejestr, bit_wysoki); cout << ("Rejestr po ustawieniu ") << wypisz(rejestr) << endl; break; } case(3): { koniec = true; break; } } } while (koniec == false); } #endif //(wersja==1)