位运算符实现对数据特定内容的处理
- 电脑硬件
- 2025-08-28 16:30:02

“&”运算符:一个二进制位和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是符号扩展。
位运算符实现对数据特定内容的处理由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“位运算符实现对数据特定内容的处理”