按位或:按位或运算符是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。当参与运算的是负数时,参与两个数均以补码出现。
与运算的运算规则:与运算是计算机中一种基本的逻辑运算方式,符号表示为“&”,按二进制位进行与运算,运算规则为,0&0=0;0&1=0;1&0=0;1&1=1,即:两位同时为“1”,结果才为“1”,否则为“0”。负数按补码形式参加按位与运算。
扩展资料:
“与运算”的特殊用途:
(1)清零:如果想将一个单元清零,即,使其全部二进制位为0,只要与一个各位都为零的数值相与,结果为零。
(2)取一个数中的指定位:确定一个数,对应X要取的位,该数的对应位为1,其余位为零,此数与X进行“与运算”可以得到X中的指定位。
对于两个逻辑量,两种运算等效对于两个整型量,逻辑与只判断两个均不为0,则为True,但是按位与则将两个数转为二进制,对于每个位进行与运算,如果结果不为0,则为True
如下例:
#include <stdioh>
void main()
{
int i=1;
int j=2;
if(i & j){ //注意此处
printf("True");
}else{
printf("False");
}
}
如果是按位与&,那么结果为False,(10)2和(1)2与之后为0,如果是逻辑与&&,那么结果为True,2 && 1=True逻辑运算是将两个 *** 作数当成整体,位运算是把每个 *** 作数对应的每一位都单独拿出来当成个体运算。逻辑与(A
&&
B)的结果是布尔值,按位与(A
&
B)的结果是数值。具体地说,两者都要将A与B作按位的与运算,但是后者直接将运算的结果作为表达式的值,而前者多出一步:若该结果非零则表达式置1,若运算结果为0则表达式置0。
从汇编角度来讲,TST和AND可以说做的是完全相同的运算,只不过TST不保存具体运算结果只判断是否为0。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)