Aktywne Wpisy

_Beskid_ +6
Tak gadacie na górali, że gwara, że muzyki góralskiej słuchać się nie da. A tak naprawdę jesteśmy kwintesencją polskiego chrześcijaństwa, szczerze wierzymy, regularnie chodzimy na msze święte, żyjemy dobrze z księdzem proboszczem, mamy w domu religijne obrazy i inne symbole wiary, wszyscy we wsi przyjmują księdza, nie ma że ktoś jest niewierzący czy innego wyznania. Szanujemy się.

Solsith +45
źródło: 1000002666
Pobierz



Mircy mam takie zadania:
1) Napisz funkcję, która dla zmiennej typu unsigned char jeśli jej najmłodszy bit ma wartość 1 wyzeruje 2 najstarsze bity tej zmiennej, a pozostałe bity ustawi na wartość 1
Słabo u mnie z tymi operacjami bitowymi, czekam na jakieś podpowiedzi mądrych mirków.
1000 0000 bin = 80hex -> ileś tam dec
i jesli (~(liczba & 0x80) )HEX to najstarszy to 1
1111 1100 bin = FC hex
@wytrzzeszcz: tylko tu problem -0 chyba jest jeszcze)
Jeżeli najstarszy bit to 1 to zaneguj wszystkie pozostale bity, powiedz mi czy dobrze mysle:
if (liczba & (1 << 0) != 0)
{
for (int n = 1; n < 8;n++)
liczba ^= 1 << n;
}
dodatkowo po co 1 przesuwasz o 0 miejsc ? i najstarszy bit to ten po lewej wiec najwiecej warty
Twój kod powinien być
if (liczba & (1<<7) ) // przesówam o 7 i ląduje na 8 bicie 1 (mogę na