金牌会员
 
- 积分
- 2099
- 金钱
- 2099
- 注册时间
- 2017-2-11
- 在线时间
- 306 小时
|
在项目中,总会定义某个全局变量,该变量的每个bit位代表某种功能状态,1-开启,0-关闭。但是有时候该变量发生一次变化时,如何定位到该变量的某个bit位发生变化,这样就可以查询到是哪种状态发生变化。此时我举了一个简单的算法,如下:
unsigned short Compare_Byte(unsigned short x,unsigned short y)
{
unsigned char i = 0;
unsigned short a = 0,b = 0,c = 1;
for (; i < 16; i++)
{
a = x % 2;
x = x / 2;
b = y % 2;
y = y / 2;
if (a != b) //通过循环比较每一位是否相等
{
break;
}
}
return c<<i;
}
不知道各位有没有更好的算法,分享一下。
|
|