Civril Posted October 27, 2011 Report Share Posted October 27, 2011 Mialem podac algorytm sprawdzajacy skladowa G 24 kolorowej palety kolorow RGB. Zrobilem to tak: 11111111 (przykladowy kolor) 00000001| (maska sprawdzajaca 1 bit) nazwijmy ja P ______________ 00000001 teraz przesuwam maske P<<8 i odczytuje potem robie tak analogicznie dla pozostalych 8 bitow, kazdy odczytuje i zapisuje. No i to rozwiazanie bylo na 2. Mozecie powiedziec co jest zle i jak to sie robi? edit juz zauwazylem, ze powinnem uzuc & zamiast | ale co jeszcze? Link to comment Share on other sites More sharing options...
gus Posted October 27, 2011 Report Share Posted October 27, 2011 Może jeszcze nie podałeś, że po odczytaniu każdego bitu musisz przesunąć jeszcze maskę P << 1. Chyba, że w poście zapomniałeś tego dopisać... Link to comment Share on other sites More sharing options...
wies.niak Posted October 27, 2011 Report Share Posted October 27, 2011 Może na początek wyjaśnijmy parę rzeczy. W temacie piszesz o palecie 24-bitowej, natomiast w treści o palecie 24 kolorów. Zgaduję, że chodzi jednak o 24 bity. Czy ta wartość "11111111" to jest pełny kolor (RGB, w zapisie szesnastkowym) czy to już jest bitowy zapis składowej G? Jeśli to jest pełny kolor, to coś nie gra, bo bitów jest 32. Poza tym, co ten algorytm ma wypluć na końcu, tzn. co to znaczy "algorytm sprawdzający"? Co ma sprawdzić? Link to comment Share on other sites More sharing options...
Civril Posted October 27, 2011 Author Report Share Posted October 27, 2011 Juz napisalem i zaliczylem, paleta miała być 24 bitowa i nalezalo sporzadzic maske 000000ff00 w szesnastkowym i zalożyć ja na RGB za pomocą &, a potem wynik przesunac >>8(ja to robilem w NKB ale w HEX to chyba >>2) i mielismy juz skladowa G. Czyli algorytm mial wypluwac skladowa G. zrobilem to w NKB no i prowadzacy powiedzial, ze wygodniej i lepiej w HEX. Link to comment Share on other sites More sharing options...
[Ekspert] Mormegil Posted October 28, 2011 Report Share Posted October 28, 2011 Ehh. Skąd pomysł, że R jest 3 bajcie ? Skoro 24 bity, to czemu maska ma 32 ? Równie dobrą odpowiedzią byłoby 0xff0000. Podałes trochę za mało detali, w szczególności zabrakło inforamcji o formacie koloru: B8G8R8X8. 24 bitowa paleta może oznaczać całkiem sporo różnych formatów, np H8S8V8X8, albo jakiś egzotyczny R24G8. Link to comment Share on other sites More sharing options...
gus Posted October 28, 2011 Report Share Posted October 28, 2011 Natomiast w pierwszym poście autor zaznaczył, że jest to paleta RGB Natomiast do autora, nie ważne w jakim formacie zapiszesz liczbę, czy to będzie hex, czy nkb, przesunięcie >> 8 zawsze oznacza przesunięcie i 8 bitów w prawo, więc wynik zapisany w hex też przesuwasz o 8. Link to comment Share on other sites More sharing options...
Civril Posted October 28, 2011 Author Report Share Posted October 28, 2011 @up dzieki tego jeszcze nie wiedzialem, bo ja jestem dopiero poczatkujacy. No ale w sumie to logiczne no bo jak zapisac HEX na bitach Link to comment Share on other sites More sharing options...
gus Posted October 28, 2011 Report Share Posted October 28, 2011 Generalnie hex to tylko sposób zapisu liczby. Tą samą liczbę możesz zapisać "na bitach" czyli binarnie, albo jako zwykłą liczbę dziesiętną. Nic nie stoi na przeszkodzie żeby liczbę zapisaną w hex zapisać binarnie. Link to comment Share on other sites More sharing options...
[Ekspert] Mormegil Posted October 28, 2011 Report Share Posted October 28, 2011 Heh, bylo stanowczo za wczesnie, R24G8 z cala pewnoscia nie jest 24 bitowy. Kazda cyfra heksadecymalna odpowiada czterem cyfrom binarnym: 0h = 0000b 1h = 0001b 2h = 0010b 3h = 0011b 4h = 0100b 5h = 0101b 6h = 0110b 7h = 0111b 8h = 1000b 9h = 1001b Ah = 1010b Bh = 1011b Ch = 1100b Dh = 1101b Eh = 1110b Fh = 1111b 9Bh = 1001 1011b A0Bh = 1010 0000 1011b Link to comment Share on other sites More sharing options...
xancik Posted November 2, 2011 Report Share Posted November 2, 2011 Czy moglby ktos wytlumaczyc krok po kroku ( dla laikow ) jak wykonac to polecenie. Mam to do zaliczenia jednak aktualne wypowiedzi w tym watku sa pobieznie opisane. Z gory dziekuje za odpowiedz. Link to comment Share on other sites More sharing options...
Sevard Posted November 2, 2011 Report Share Posted November 2, 2011 Załóż własny temat tak, jak należy, żeby bałaganu nie robić, to może i ktoś wyjaśni to jaśniej. Link to comment Share on other sites More sharing options...
Civril Posted November 8, 2011 Author Report Share Posted November 8, 2011 Kazda cyfra heksadecymalna odpowiada czterem cyfrom binarnym: 0h = 0000b 1h = 0001b 2h = 0010b Adres tabeli dajmy na to (albo komorki) i jest on podany jako 2h to oznacza ze w dec wynosi on tez 2? A jak mam np adres 25h to wynosi on w dec:7? edit: Mialem na mysli 37dec to tylko literowka, ale juz znam odp Link to comment Share on other sites More sharing options...