我确信这必须和黄油一样甜美。但我无法得到它甚至找不到它。
它与.net中的颜色有关。我从互联网上获取了一些示例代码并试图理解它。它需要uInt
作为参数,并执行一些操作以返回a
,r
,g
和b
字节值。方法如下:
private Color UIntToColor(uint color)
{
byte a = (byte)(color >> 24);
byte r = (byte)(color >> 16);
byte g = (byte)(color >> 8);
byte b = (byte)(color >> 0);
return Color.FromArgb(a, r, g, b);
}
那么这里的>>
是什么。例如,
color = 4278190335 // (blue color)
处理后
a = 255
r = 0
g = 0
b = 255
那么有人能帮助我理解这个吗?
答案 0 :(得分:5)
所以,如果你将4278190335的值转换为十六进制(因为它更容易看到发生了什么)你得到0xFF0000FF
所以这一行:
byte a = (byte)(color >> 24);
将向右移位0xFF0000FF 24位给你0x000000FF。如果将其转换为一个字节,则将截断最高有效位,最后以0xFF或255结束。
所以你应该能够弄清楚其他3行是做什么的。
答案 1 :(得分:5)
这是右移运营商。
基本上,它的作用是将第一个操作数的所有位都移到右边。第二个操作数指定“远”是如何移位的。例如:
uint value = 240; // this can be represented as 11110000
uint shift2 = value >> 2; // shift2 now equals 00111100
uint shift4 = value >> 4; // shift4 now equals 00001111
关于这个问题的好文章是here。
答案 2 :(得分:4)
>>是右移操作员。