2010-05-01 8 views

Répondre

2

Il semble être la création d'un composite valeur de couleur de 32 bits c de valeurs de canaux de 8 bits stockés dans les variables r, g, b, avec une valeur du canal alpha de 0xFF (tous les), à savoir complètement opaque. Essentiellement, ce qui se passe est que chaque valeur distincte 0xFF, r, g, b est déplacée la quantité appropriée de places (24, 16, 8 et 0), puis OR-ed ensemble pour les combiner et stocker dans une seule variable entière non signée.

6

Ceci configure les différents octets dans un mot de quatre octets. < < décale vers la gauche par le nombre de bits, donc << 24 changements de trois octets, << 8 par un octet, etc. Ainsi, les composants qui sont ORED ensemble seraient

0xFF000000   0xFF << 24 
0x00rr0000   r << 16 
0x0000gg00   g << 8 
0x000000bb   b 

Pour donner une réponse définitive à la recherche quelque chose comme

0xFFrrggbb 

Compte tenu des noms de variables ceci est sans doute une valeur de couleur 32 bits, avec un octet pour le rouge, le vert et le bleu. Le quatrième composant pourrait être une transparence, ou une valeur z (profondeur), ou simplement des bits de réserve au cas où ils seraient nécessaires ailleurs. ;-)

+0

Un mot de quatre bits? –

+0

Doh, merci Mark. Fixé. –

1

Il prend des valeurs de quatre octets et est assemblé en un entier non signé de 32 bits.

L'opérateur de décalage << est utilisé pour déplacer les valeurs vers une position de bit spécifique.

0xFF < < 24 crée la valeur 0xFF000000. 16

< < 16 place la valeur r dans les huit bits suivants: 0x00rr0000.

Et ainsi de suite. Les associer ensemble crée la valeur 0xFFrrggbb.

La raison de ces opérations est la plus probable de mettre ensemble les composants alpha, rouge, vert et bleu en une valeur de couleur de 32 bits.