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 :(得分:0)
首先,“&lt;&lt;&lt;和“&gt;&gt;”运算符是用于移位的按位运算符。您可以通过搜索“按位运算符”关键字在网上找到有关这些操作的大量信息。
基本上你正在做的是将 colorvalue 变量移动两位,这意味着你将 colorvalue 除以4并存储在 red < / em>变量。
之后,代码所做的是从 colorvalue 中减去存储在 red 变量中的变量乘以4。
int red = colorvalue&gt;&gt; 2; //为什么要使用这个表达式
colorvalue - = red&lt;&lt; 2;
该代码用作模运算,其中函数除数为4,且被除数为 colorvalue 。