语言位运算 一、位运算符C语言提供了六种位运算符:
按位与
按位或
按位异或
取反
左移
右移
按位与运算 按位与运算符是双目运算符。其功能是参与运算的两数各对应的二进位
相与。只有对应的两个二进位均为 时,结果位才为 ,否则为 。参与运算的数以补码方
式出现。
例如: 可写算式如下: 的二进 制 补 码 的 二进制补 码
的二进制补码可见 。
按位与运算通常用来对某些位清 或保留某些位。例如把 的高八位清 , 保留低八
位, 可作 运算 的二进制数为 。
!"
!#$#%&
%$&
'( !)*+,!$*+,!%*+,!##$#%&
-
按位或运算 按位或运算符“.是双目运算符。其功能是参与运算的两数各对应的二进位相
或。只要对应的二个二进位有一个为 时,结果位就为 。参与运算的两个数均以补码出
现。
例如: 可写算式如下:
十进制为 /可见 /
!"
!#$#%&
%$&
'( !)*+,!$*+,!%*+,!##$#%&
-
/按位异或运算 按位异或运算符“.是双目运算符。其功能是参与运算的两数各对应的二进
位相异或,当两对应的二进位相异时,结果为 。参与运算数仍以补码出现,例如 可
写成算式如下: 十进制为
!"
!&
&
'( !)*+,!#&
-
0求反运算 求反运算符~为单目运算符,具有右结合性。 其功能是对参与运算的数的各
二进位按位求反。例如~ 的运算为: 结果为: