Facebook
From Adrian, 6 Years ago, written in C++.
Embed
Download Paste or View Raw
Hits: 235
  1. void stan_niski(unsigned short &rejestr, int bit_niski)
  2. {
  3.         rejestr &= ~(1 << bit_niski);
  4. }
  5. void stan_wysoki(unsigned short &rejestr, int bit_wysoki)
  6. {
  7.         rejestr |= (1 << bit_wysoki);
  8. }
  9.  
  10.  
  11. char* wypisz(unsigned short rej)
  12. {
  13. static char bufor[16] = { 0 };
  14.  
  15. unsigned short n = 0;
  16.  
  17. n = sprintf(bufor, "", rej);
  18.  
  19. for (int i = 15; i >= 0; i--)
  20. n += sprintf(&bufor[n], "%d ", static_cast<bool>(rej & (1 << i)));
  21.  
  22. return bufor;
  23.  
  24. }
  25.  
  26. int main()
  27. {
  28.         unsigned short rejestr = 759;
  29.  
  30.         bool koniec = false;
  31.  
  32.         int wybor;
  33.         int bit_niski;
  34.         int bit_wysoki;
  35.  
  36.         printf("Rejestr przed ustawieniem : %s", wypisz(rejestr));
  37.         cout << endl;
  38.  
  39.         do
  40.         {
  41.                 cout << ("Co chcesz zrobic?") << endl;
  42.                 cout << ("1. Ustawienie wybranego bitu na stan niski ") << endl;
  43.                 cout << ("2. Ustawienie wybranego bitu na stan wysoki ") << endl;
  44.                 cout << ("3. Zakoncz ") << endl;
  45.  
  46.                 cin >> wybor;
  47.  
  48.                 switch (wybor)
  49.                 {
  50.  
  51.                 case(1):
  52.                 {
  53.                         cout << ("Ktory bit chcesz ustawic na stan niski? :");
  54.                         cin >> bit_niski;
  55.  
  56.                         stan_niski(rejestr, bit_niski);
  57.  
  58.                         cout << ("Rejestr po ustawieniu ")<< wypisz(rejestr) << endl;
  59.  
  60.                         break;
  61.                 }
  62.                 case(2):
  63.                 {
  64.                         cout << ("Ktory bit chcesz ustawic na stan wysoki? :");
  65.  
  66.                         cin >> bit_wysoki;
  67.  
  68.                         stan_wysoki(rejestr, bit_wysoki);
  69.  
  70.                         cout << ("Rejestr po ustawieniu ") << wypisz(rejestr) << endl;
  71.                         break;
  72.                 }
  73.                 case(3):
  74.                 {
  75.                         koniec = true;
  76.                         break;
  77.                 }
  78.  
  79.                 }
  80.         } while (koniec == false);
  81.        
  82.  
  83.        
  84.        
  85. }
  86. #endif //(wersja==1)