简单的C#位运算问题
C#初学者,求大神们帮帮忙,如下代码所示:
我从一个Color获取了一个ARGB向量,0xff87cefa,想通过位移将A分量分离出去(0x0087cefa),
然后加上自定义的A分量,但位移的时候出了问题,
<<8确实如预想那样变成0x87cefa00(后面0补位),可是>>8的时候居然又变成了0xff87cefa。。。。。
我不理解了,求大神们帮帮忙……
我只是想学习下位运算,请不要告诉我分别获取A,R,G,B,然后重组Color……谢谢……
//ARGB向量
Int32 colorARGB = Configuration.buttonBackColor.ToArgb();
//位移分离RGB
Int32 RGB = (colorARGB << 8) >> 8;// / 256 / 256;
//指定Alpha分量,合成新ARGB
Int32 resultARGB = RGB + (Int32)(bgAlpha * Math.Pow(256, 3));
c#
位运算
------解决方案--------------------1、用uint32
2、把自己alpha 加进去,只要把bgAlpha左移24位,然后直接和先前的值按位与就可以了
没必要想你那样。
------解决方案--------------------可以用与预算啊。
0xff87cefa &00FFFFFF=0x0087cefa
------解决方案--------------------int result = 0xff87cefa & 0x00ffffff