前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >c语言位运算符解释_c语言逻辑关系运算符

c语言位运算符解释_c语言逻辑关系运算符

作者头像
全栈程序员站长
发布2022-11-09 16:52:14
1.3K0
发布2022-11-09 16:52:14
举报

位操作是程序设计中对位模式按位或二进制数的一元和二元操作,在许多古老的微处理器上,位运算比加减运算略快,通常位运算比乘除法运算要快很多。 按位取反:~ ‘~’是一元运算符,用来对一个二进制数按位取反,把0变为1,把1变为0。如下例子所示。

~(10001100) //表达式 (01110011) //结果值

进行取反运算时符号位也会取反 按位与:& ‘&’是二元运算符,通过逐位比较两个运算对象,生成一个新值。对于每个位,只要两个运算对象中相同的位有一个0就是0,两个都为1时才为1。

(01101101)&(10001001) //表达式 (00001001) ;//结果值

按位或:| ‘|’是二元运算符,对应位的二进制只要有一个为1就为1,两个都为0才为0。

(10010011) | (00111101) //表达式 (10111111) //结果值

按位异或:^ ‘^’是二元运算符,两个二进制序列进行异或运算,对应位的二进制相同为0,相异为1。

(10010011) ^ (00111101) //表达式 (10101110) //结果值

逻辑运算符一般在if语句中使用,包括逻辑与(&&)、逻辑或(||)、逻辑非(!) 逻辑与(&&): 参与运算的两个表达式都为真时,结果才为真,否则为假。 在c语言中,0为假,非0就为真

代码语言:javascript
复制
	int a = 10;
	int b = 0;
	if (a && b)
	{ 
   
		printf("hehe\n");
	}

a的值是10,为真,b的值是0,为假。 此时a&&b的结果就是0,为假,不会输出hehe。

代码语言:javascript
复制
	int a = 10;
	int b = 5;
	if (a && b)
	{ 
   
		printf("hehe\n");
	}

当把b改成5时,此时b也为真,逻辑与两侧都为真,此时a&&b结果是1,输出hehe。 逻辑与运算判断出第一个表达式为假后,后面的表达式就不会再计算了

代码语言:javascript
复制
	int a = 0,b = 5,c = 10;
	int i = a && b && c;

此时a=0为假,i的值就是0,不会对b和c两个表达式进行运算了。 逻辑或(||): 参与运算的表达式有一个为真时结果就是真,全为假时才是假。

代码语言:javascript
复制
	int a = 10;
	int b = 0;
	if (a || b)
	{ 
   
		printf("hehe\n");
	}

a为真,b为假,只要有一个真结果就是真,此时输出hehe。

逻辑或运算判断出第一个表达式为真后,后面的表达式就不会再计算了 逻辑非(!): 非假即为真,非真即为假,就是指本来值的反值。

代码语言:javascript
复制
	int a = 10;
	if (!a)
	{ 
   
		printf("hehe\n");
	}

a=10为真,!a运算后结果为0,不会打印hehe。 当a = 0时,!a为1,此时打印hehe。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/186088.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月4日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档