Advertisement
Guest User

Untitled

a guest
Jan 17th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.55 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.     int i; 
  7.     unsigned char co = 0b11111110; //czego szukam
  8.     unsigned int pomoc = co;
  9.     unsigned int gdzie = 0b11111111111111111111111111111110; //gdzie szukam
  10.     unsigned int gdzie2 = gdzie;
  11.     unsigned int maska = ~0;
  12.  
  13.     maska = maska << 8 * 3;
  14.     pomoc = pomoc << 8 * 3;
  15.     for (i = 31; i >= 0; i--)
  16.         printf("%u", (gdzie >> i) & 1);
  17.     printf("\n");
  18.     if (!co) // neguję co i gdzie tylko po to zebym mogl zprawdzac jak czlowek czy wyjsc juz z petli
  19.     {
  20.         pomoc = maska; // skoro szukamy osmiu 0 to jak zanegujemy to szukamy 8 jedynek a nasza maska idealnie pasuje
  21.         gdzie2 = ~gdzie2; //jak zanegujemy gdzie2 to ciąg 00000000 zamieni się na 11111111 i go szukamy
  22.         co = ~co;  // to jest niepotrzebne nie wiem czemu to napisałem
  23.     }//ten if w while jakbym szukał 0 to by zawzse był prawdziwy (0==0) i zakonczyłoby program za prierwszym razem a ten trik pozwala nam szukać 0
  24.  
  25.     while ( ((gdzie2&maska) ^ pomoc) != 0) // obcinam wszystko do okoła tego co szukam i zamieniam 0 (gdzie2&maska) a później xor z tym czego szukam i jeżeli 0 poza obszarem szukania zostaną zerami a każda niezgodnoś między obszarem szukania a tym co szukamy zamieni się na 1
  26.     {
  27.         if (co == pomoc) return 0; // tu jeżeli pomoc == co to czyli pomoc = 00....00(tutaj wartość co) czyli jak przesuniemy o 1 dalej to już będziemy szukali co z odciętym ostatnim bitem
  28.         pomoc = pomoc >> 1;
  29.         maska = maska >> 1;
  30.     }
  31.     gdzie = gdzie ^ maska;
  32.  
  33.     for (i = 31; i >= 0; i--)
  34.         printf("%u", (gdzie >> i) & 1);
  35.  
  36.     system("pause");
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement