Skocz do zawartości

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

Civril

Algorytm sprawdzajacy skladowa G koloru RGB(24bit)

Polecane posty

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 do komentarza
Udostępnij na innych stronach

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 do komentarza
Udostępnij na innych stronach

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 do komentarza
Udostępnij na innych stronach

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 do komentarza
Udostępnij na innych stronach

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 do komentarza
Udostępnij na innych stronach

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 do komentarza
Udostępnij na innych stronach

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 do komentarza
Udostępnij na innych stronach



  • Kto przegląda   0 użytkowników

    • Brak zalogowanych użytkowników przeglądających tę stronę.
×
×
  • Utwórz nowe...