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;?

4

1 回答 1

0

首先,“<<”和“>>”运算符是移位运算符。您可以通过搜索“按位运算符”关键字在网上找到有关这些操作的大量信息。

基本上,您所做的是将colorvalue变量移动两位,这意味着您将colorvalue除以 4 并存储在red变量中。

之后,代码所做的是从colorvalue中减去存储在红色变量中的变量乘以 4。

诠释红色 = 颜色值 >> 2; // 为什么使用这个表达式

颜色值 -= 红色 << 2;

该代码用作模运算,其中函数除数为 4,被除数为colorvalue

于 2013-05-29T01:33:50.403 回答