首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

简单的C#位运算有关问题

2013-02-28 
简单的C#位运算问题C#初学者,求大神们帮帮忙,如下代码所示:我从一个Color获取了一个ARGB向量,0xff87cefa,

简单的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

热点排行