2013-05-16 100 views
0
int red = colorvalue >> 2;// why use this expression 
colorvalue -= red << 2; 

int colorValue = messageLength; 
int red = colorValue >> 2; 
colorValue -= red << 2; 
int green = colorValue >> 1; 
int blue = colorValue - (green << 1); 
pixelColor = Color.FromArgb(red, green, blue); 
bitmap.SetPixel(0,0, pixelColor); 

請解釋對我來說。我不明白這個算法。爲什麼使用這個表達式:colorvalue -= red << 2;返回值時,該代碼是執行

回答

0

首先,在「< <」和「>>」運算符是用於移位位運算符。通過搜索「按位運算符」關鍵字,您可以在網絡上找到關於這些操作的大量信息。

基本上你正在做的是由兩個比特移位colorvalue變量,這意味着你將colorvalue 4和在紅色變量存儲。

之後,什麼代碼中並從colorvalue存儲在紅色變量乘以4。

INT紅色= colorvalue >> 2變量中減去; //爲什麼要使用這個表達式

colorvalue - = red < < 2;

代碼工作爲模數運算其中函數除數是4和被除數是colorvalue