2010-05-01 104 views

回答

2

這似乎是創建複合32位顏色值c出存儲在r, g, b變量8位的信道的值,與0xFF(全1)的α信道值一起,即完全不透明。

本質上,發生的是每個單獨的值0xFF, r, g, b正在被移位適當的位置(24,16,8和0),然後進行或運算以合併它們並存儲到單個無符號整數變量中。

6

這是在一個四字節的單詞中設置不同的字節。 < <轉移到由位指定數量的離開,所以<< 24班次由三個字節,<< 8通過一個字節等,所以用OR在一起的組件將

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

得到一個最終的答案找東西像

0xFFrrggbb 

給定變量名稱,這大概是一個32位顏色值,每個字節爲紅色,綠色和藍色。第四個組件可以是透明度或z值(深度),或者只是備用位,以防其他地方需要它們。 ;-)

+0

四位字? – 2010-05-01 19:25:00

+0

Doh,謝謝馬克。固定。 – 2010-05-01 19:55:44

1

它需要四個字節的值並放在一起成爲一個32位無符號整數。

移位運算符<<用於將值移動到特定的位位置。

0xFF < < 24創建值0xFF000000。

r < < 16將r值放入接下來的8位:0x00rr0000。

依此類推。將它們組合在一起可創建值0xFFrrggbb。

此操作的原因很可能是將alpha,紅色,綠色和藍色組件組合在一起,形成32位顏色值。