主页 > 电脑硬件  > 

位运算符实现对数据特定内容的处理

位运算符实现对数据特定内容的处理

“&”运算符:一个二进制位和0相与能清零;一个二进制位和1相与保持不变。

“|”运算符:一个二进制位和1相或能置1;一个二进制位和0相或保持不变。

“^”运算符:一个二进制位和1异或能取反,一个二进制位和0异或保持不变。

利用这些性质方便实现对数据特定位置值的处理。

源程序

int fun1(unsigned int w); int fun2(unsigned int w);

void main() {     static int x,y;     int z1, z2, z3, xlB, xnB, xff;     unsigned int word=0x8795;     int result1, result2;     result1=fun1(word);     result2=fun2(word);     x=0x8765;      xlB=x&0xff;          //x的高字节清零,低字节不变     xnB=x^(~0xff);    //x的高字节每位取反,低字节不变     xff=x|0xff;         //x的高字节不变,低字节每位都变为1     y=0x7895;     z1=(x&(~y))|((~x)&y);    //z1为x与y的异或     z2=x^y;        //z1为x与y的异或     z3=!(x^y);   //x与y相等z3为1,x与y不等z3为0          }

int fun1(unsigned int w)     //返回低8位的无符号值 {     return (int)((w<<8)>>8); }

int fun2(unsigned int w)     //返回低8位的带符号值 {     return ((int)w<<8)>>8; } 程序执行后,z1=z2=0xfff0。  result1=0x0095=95,   result2=0xff95=-107,高字节FFH是符号扩展。               

标签:

位运算符实现对数据特定内容的处理由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“位运算符实现对数据特定内容的处理