双目运算符

位逻辑运算符

有6种位运算:

    &       与运算
| 或运算
^ 异或运算
! 非运算(求补)
>> 右移运算
<< 左移运算
  • 与运算(&)
    双目运算。二个位都置位(等于1)时,结果等于1,其它的结果都等于0。
    1       &       1       ==       1
1 & 0 == 0
0 & 1 == 0
0 & 0 == 0
  • 或运算( | )
    双目运算。二个位只要有一个位置位,结果就等于1。二个位都为0时,结果为0。
    1       |       1       ==       1
1 | 0 == 1
0 | 1 == 1
0 | 0 == 0
  • 异或运算(^)
    双目运算。二个位不相等时,结果为1,否则为0。
    1       ^       1       ==       0
1 ^ 0 == 1
0 ^ 1 == 1
0 ^ 0 == 0
  • 非运算(!)
    单目运算。位值取反,置0为1,或置1为0。非运算的用途是将指定位清0,其余位置1。非运算与数值大小无关。

  • 移位运算(>> 与 <<)
    将位值向一个方向移动指定的位数。右移 >> 算子从高位向低位移动,左移 << 算子从低位向高位移动。

  • &,&&,|,||

&&相当一个开关语句,就是说如果&&前面值为false那么他就不继续执行后面的表达式;而&不管前面的值为什么,总是执行其后面的语句。&& 和 || 是boolean的逻辑运算, 返回为bool值 。&是位运算符,它会将两边的运算都计算出来,再进行与运算; &是用来处理0101这样的2进制字符的位运算的。&&是布尔逻辑运算符(短路运算),只要有一边的运算结果为false,它都会马上返回false;&&是处理true和false这样的boolean运算。
同样的道理,|| 也是布尔逻辑运算符,只要有一边的运算结果是true,它会马上返回true。

关系运算符

https://baike.baidu.com/item/%E5%85%B3%E7%B3%BB%E8%BF%90%E7%AE%97%E7%AC%A6/352774

算术运算符
乘法运算符【*】、除法运算符【/】、取余运算符【%】 、加法运算符【+】、减法运算符【-】。

赋值运算符
https://baike.baidu.com/item/%E8%B5%8B%E5%80%BC%E8%BF%90%E7%AE%97%E7%AC%A6/2482721
逗号运算符
https://baike.baidu.com/item/%E9%80%97%E5%8F%B7%E8%BF%90%E7%AE%97%E7%AC%A6/7959271

单目运算符

单目运算符是指运算所需变量为一个的运算符,即在运算当中只有一个操作数,又叫一元运算符,其中有逻辑非运算符:!、按位取反运算符:~、自增自减运算符:++, --等。

三目运算符

对于条件表达式b ? x : y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。
一个条件表达式绝不会既计算x,又计算y。条件运算符是右结合的,也就是说,从右向左分组计算。例如,a ? b : c ? d : e将按a ? b : (c ? d : e)执行。
<表达式1> ? <表达式2> : <表达式3>; "?"运算符的含义是:先求表达式1的值,如果为真,则执行表达式2,并返回表达式2的结果;如果表达式1的值为假,则执行表达式3,并返回表达式3的结果。
可以理解为条件 ? 结果1 : 结果2 里面的?号是格式要求。也可以理解为条件是否成立,条件成立为结果1,否则为结果2。
注意:在C语言中,结果1 和 结果2的类型必须一致。

a ? b : c简单理解方式为:

if(a) {
return b;
} else {
return c;
}

一般来说,三目运算符的结合性是右结合的.

运算符优先级


IN THE END

C/的常用位运算符的更多相关文章

  1. python常用算数运算符、比较运算符、位运算符与逻辑运算符

    编辑时间: 2019-09-04,22:58:49 算数运算符 '+'.'-'.'*'.'/' :加.减.乘.除 '**':指数运算, ‘//’:整除, ‘%‘:求余数 num_1 = 15; num ...

  2. c 语言的位运算符复习

    转载和修正,原文连接:http://www.cnblogs.com/911/archive/2008/05/20/1203477.html 位运算是指按二进制进行的运算.在系统软件中,常常需要处理二进 ...

  3. Java的算数运算符、关系运算符、逻辑运算符、位运算符

    JAVA的运算符,分为四类: 算数运算符.关系运算符.逻辑运算符.位运算符 算数运算符(9):+  -  *  /  %  ++  -- 关系运算符(6):==  !=  >  >=  & ...

  4. PHP中的运算符---位运算符、递增递减运算符、三元运算符、字符串运算符、数组运算符、类型运算符、错误控制运算符

    1.位运算符 位运算符用来对整型数的指定位进行置位,如果被操作数是字符串,则对该字符串的ASCII码值进行操作. 运算类型 运算符 举例 结果 按位与 & $a & $b 将$a 与 ...

  5. javascript运算符——位运算符

    × 目录 [1]二进制 [2]非 [3]与[4]或[5]异或[6]左移[7]右移[8]>>>[9]应用 前面的话 位运算符是非常底层的运算,由于其很不直观,所以并不常用.但是,其速度 ...

  6. Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)

    位运算符主要针对二进制,它包括了:“与”.“非”.“或”.“异或”.从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算.下面 ...

  7. 基础知识复习(一)——C语言位运算符详解

    常用的位运算符:与(&),取反(~),或(|),异或(^),左移(«),右移(») 1. 与(&)操作符,按位与,全为1 时,结果取1 11001 &10011 结果:1000 ...

  8. 【转】C语言位运算符:与、或、异或、取反、左移与右移详细介绍

    转载自:http://www.jb51.net/article/40559.htm,感谢原作者. 以下是对C语言中的位运算符:与.或.异或.取反.左移与右移进行了详细的分析介绍,需要的朋友可以过来参考 ...

  9. C语言提供的位运算符

      运算符 含义 描述 & 按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0 | 按位或 两个相应的二进制位中只要有一个为1,该位的结果值为1 ^ 按位异或 若参加运算的两个 ...

随机推荐

  1. 注册github时总卡在第一步无法验证的解决办法

    从github官网可以看出问题所在,所以造成这一问题的极大可能就是浏览器的问题. 最简单的方法就是换手机浏览器进行注册

  2. python练习 - 系统基本信息获取(sys标准库)+ 二维数据表格输出(tabulate库)

    系统基本信息获取 描述 获取系统的递归深度.当前执行文件路径.系统最大UNICODE编码值等3个信息,并打印输出.‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮ ...

  3. Element UI - DatePicker 自定义日期选择期间

    <el-date-picker v-else v-model="searchForm.data_Selected" type="daterange" un ...

  4. 数据结构与算法系列2 线性表 链表的分类+使用java实现链表+链表源码详解

    数据结构与算法系列2.2 线性表 什么是链表? 链表是一种物理存储单元上非连续,非顺序的存储结构,数据元素的逻辑顺序是通过链表的链接次序实现的一系列节点组成,节点可以在运行时动态生成,每个节点包括两个 ...

  5. 16_Python设计模式

    1.设计模式概述 1.设计模式代表了一种最佳的实践,是被开发人员长期总结,用来解决某一类问题的思路方法,这些方法保证了代码的效率也易于理解 2.设计模式类型:根据23种设计模式可以分为三大类     ...

  6. 05_Python的文件操作

    1.文件操作概述 # 文件是用于数据存储的单位通常用来长期存储设置,文件中的数据是以字节为单位进行顺序存储的     1.打开文件: f = open("xxx") 或 with ...

  7. Oracle的dbms_random.value(min,max)函数包括边界值吗?数据是如何分布的?

    事先申明下,我的DB环境是Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production,不保证在其它版本下也 ...

  8. 原生 Java 客户端进行消息通信

    原生 Java 客户端进行消息通信 Direct 交换器 DirectProducer:direct类型交换器的生产者 NormalConsumer:普通的消费者 MulitBindConsumer: ...

  9. Linux:使用SecureCRT来上传和下载文件

    SecureCRT自带的有几种上传下载功能,SecureCRT下的文件传输协议有以下几种:ASCII.Xmodem.Ymodem.Zmodem. ASCII:这是最快的传输协议,但只能传送文本文件.  ...

  10. Session、Cookie、Token 【浅谈三者之间的那点事】

    Cookie 和 Session HTTP 协议是一种无状态协议,即每次服务端接收到客户端的请求时,都是一个全新的请求,服务器并不知道客户端的历史请求记录:Session 和 Cookie 的主要目的 ...