15.2简单的位运算
C语言提供了位(bit)运算的功能,这使它像汇编语言一样用来编写系统程序。位运算符共有六种;
位运算符
位运算符含义
&位与
︳位或
∧位异或
~位取反
<<位左移
>>位右移
本节介绍前四种运算,即位的逻辑运算。
1.按位与运算
①概念
“按位与”运算符“&”是双目运算符,其功能是将参与运算两数的各对应二进位相与。只能对应的两个二进位均为1时,结果位才为1,否则为0。
②“按位与”与运算的特殊用途
ⅰ.清零
如果想将一个存储单元清零,即使其全部二进位为0,可按这样的方法计算:
找一个数,它的补码形式中各位的值符合如下条件:原来的数中为1的位,新数中相应位为0(注意,并不要求原数为0的位上,新数相应位为1,新数相应位可以是0或1);对二者进行&运算。
ⅱ.取一个数中某些字节
对于一个整数a(占2个字节),如要想得到其中的低字节,只需将a与特定的一个数按位与即可。
③要想将一个数的某一位保留下来,可将该数与一个特定的数进行&处理。
2.按位或运算
“按位或”运算符“︳”是双目运算符,其功能是将参与运算两数的各对应的二进位相或。只要对应的两个二进位有一个为1时,结果位就为1。参与运算的整数均以补码出现。
3.按位异或运算
①概念
“按位异或”运算符“∧”是双目运算符,其功能是将参与运算两数的各对应位相异或,当两对应的二进位相异时,结果为1,否则为0。参与运算整数仍以补码出现。
②“异或”运算的特殊应用
ⅰ.使特定位翻转
ⅱ.与0相“异或”,保留原值。
ⅲ.交换两个值。
4.“取反”运算
“~”是一个一元运算符,即它的运算量只有一个,用来对一个二进制数按位取反,即将0变1,1变0。比如说,~025就是对八进制数25(即二进制数000000000010101)按位求反。
2015年全国职称计算机考试教材(2007模 .. 定价:¥225 优惠价:¥213 更多书籍 | |
全国职称计算机考试速成过关系列套装:W .. 定价:¥133 优惠价:¥133.0 更多书籍 |