0x0000FF中FF在低位,那是紅色,哪來的與藍色按位與。那是提取紅色所在位置的值。
比如RGB(237,138,176),這個Color值為11569901,即0xB08AED,執行跟0x0000FF與運算,得到0xED,這個10進制是237,就是紅色的值。你用計算器算一下。
0xB08AED & 0x00FF00 = 0x8A00,右移8位,即是0x8A,這個是138,是綠色的值。
0xB08AED & 0xFF0000 = 0xB00000,右移16位,即是0xB0,這個是176,是藍色的值。
其實,只要把Color的值輸出為16進制表示,依次看左中右三個獨立的16進制數據,就分別是藍、綠、紅值了。這種FF處於不同位置與數據與運算的動作,那三個0x0000FF、0x00FF00、0xFF0000,就叫“掩碼”,就是提取指定位置數據的。
[ 本帖最后由 TonyDeng 于 2012-1-17 23:24 编辑 ]