sprawdzanie danego bitu
Ostatnio zmodyfikowano 2015-01-13 01:02
snd0cff Temat założony przez niniejszego użytkownika |
sprawdzanie danego bitu » 2015-01-12 23:58:06 moim zadaniem jest sprawdzenie czy najstarszy bajt zadanej zmiennej ma wartość np. 0xBB. Problem jest w tym, ze nie wiem jak porównać dany bajt. Czy warunek if ma się składać z 8 części, gdzie w każdej sprawdzany jest dany bit w sensie: 32bit==1 31bit==1 30bit==0 itd... No i nie wiem, w jaki sposób przejść do tego bitu(bo chce porównać wyłącznie ten bajt, reszta mnie nie obchodzi) |
|
wilkoo13 |
» 2015-01-13 00:39:19 Nie jestem pewny czy o to chodzi ale chcesz pprst wiedzieć jak wygląda liczba w zapisie binarnym. W mojej książce bylo cos takiego: for( int i = 7; i >= 0; i-- ) if( var &( 1 << i ) cout << "1"; else cout << "0";
To są operatory obrotu. Gdzie var to zmienna a 1<<i to każda potęga liczby 1 (czyli bit 1, 10, 100, 1000, 10000). Poradzisz sobie aby zmodyfikowac kod by nie pokazywal ci 6 czy 7 zer na poczatku tylko tyle ile jest potrzebne. Mam nadzieje ze pomoglem |
|
snd0cff Temat założony przez niniejszego użytkownika |
» 2015-01-13 01:02:24 Rozwiązałem to w taki sposób: #define CHECK(arg) ((arg >>=(( sizeof(T) * 8 - 8))==0xCC) ? true : false) chyba zbyt krótko się głowiłem nad tym, zanim wrzuciłem bo wpadłem na ten pomysł czekając na odpowiedz! ;) W każdym razie dzieki za odpowiedz! pozdrawiam |
|
« 1 » |