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

c语言逻辑运算符!_c语言中关系运算符

作者头像
全栈程序员站长
发布2022-09-27 11:42:16
1.4K0
发布2022-09-27 11:42:16
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

& | ~ ^ >> << && || !

运算符包括逻辑运算符与位运算符。

逻辑运算符针对的就是真假问题,或者说0 1 问题,也就是bool类型的。

位运算符重点在于位操作,也就是对每一位进行操作。下面逐个介绍。

&

  • 当 & 两边是bool 类型的值时,该运算符作为逻辑运算符。作用如下:

当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。

  • 当 & 两边不是bool类型的时候,该运算符作为位运算符,将两边的值作为二进制展开,依次对每一位进行 按位与。作用如下:

11100101 & 01011010 = 01000000

&&

逻辑运算符,当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。

&& 与 & 的 都作为逻辑运算符的区别:

  • 两个运算符运算结果一样。
  • &&又叫短路与,如果左边位flase,那么该结果就已经出来了,则不会再计算右边的布尔表达式,从而提高效率。而&即使左边位flase,还是会计算右边的。所以如果左边位flase时,&&的效率高于&。

|

  • 当两边是bool运算符时,该运算符作为逻辑运算符。作用如下:

只要两边的布尔表达式有一边为true,那么结果就为true,只有两边同时为false 的时候,结果才是false。

  • 当 | 两边不是bool类型的时候,该运算符作为位运算符,将两边的值作为二进制展开,依次对每一位进行 按位或。作用如下:

11100101 | 01011010 = 11111111

||

逻辑运算符,只要两边的布尔表达式有一边为true,那么结果就为true,只有两边同时为false 的时候,结果才是false。

|| 与 | 的 都作为逻辑运算符的区别:

  • 两者运算结果一样
  • 使用短路或的时候,当发现左边的布尔表达式为true时,则不会运算右边的布尔表达式。使用单或的时候发现左边的布尔表达式为true,还是会运算右边布尔表达式。当左边位true时,|| 效率高于|

^

逻辑运算符,异或。也就是 只要两边的布尔表达式结果不一致,那么结果就为true,如果左右两边的布尔表达式一致,那么就为false。(相同为0,不同为1)。

例如:00000101 ^ 00000011 = 00000110

逻辑运算符,非运算符。非0为1,非1为0.

~ 位运算符,对每一位进行取反。

例如:00000111 取反 11111000

<<

移位运算符,左移。

一个操作数进行左移运算的时候,结果就是等于操作数乘以2的n次方,n就是左移的位数.

>>

移位运算符,右移。

一个操作数在做右移运算的时候,实际上就是等于该操作数除以2的n次方,n就是右移的位数。

? :

三元运算符

当使用三元运算符时,一定要定义一个变量来接受返回的结果,

使用方法:变量 = 表达式 ?正确 :错误

部分来自:http://blog.csdn.net/qq_34944851/article/details/52620454

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

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