public uint[] int2Color(uint color)
{
uint[] rgb = new uint[4];
uint r = (color >> 16) & 0xff;
uint g = (color >> 8) & 0xff;
uint b = color & 0xff;
uint a = (color >> 24) & 0xff; ;
rgb[0] = r;
rgb[1] = g;
rgb[2] = b;
rgb[3] = a;
return rgb;
}
一个int由4个byte组成,而一个byte的存储范围是0-255,所以一个int可以存储一个颜色或者一个IP地址。
例如:十进制4294901760转为二进制后是11111111111111110000000000000000
r = (00000000 00000000 11111111 11111111) & (00000000 00000000 00000000 11111111) = 255;
g = (00000000 11111111 11111111 00000000) & (00000000 00000000 00000000 11111111) = 0;
b = (11111111 11111111 00000000 00000000) & (00000000 00000000 00000000 11111111) = 0;
a = (11111111 00000000 00000000 11111111) & (00000000 00000000 00000000 11111111) = 255;