二进制运算符主要操作整型的二进制(char,int等) ,分为按位或 按位与 取反和异或
以下二进制运算都是先求出二进制然后进行计算(此处 用8位二进制的char作为例子)
提前算出的两个数字的二进制 39 0010 0111 21 0001 0101
按位或 | 依次比较两个二进制的每一位 按照有1则1,否则为0的规则依次计算出一个新的二进制 39|21--->0010 0111 | 0001 0101 à 0011 0111
按位与 & 依次比较两个二进制的每一位 按照有0则0,否则为1的规则依次计算出一个新的二进制 39&21---> 0010 0111 & 0001 0101 à 0000 0101
异或 ^ 依次比较两个二进制的每一位 按照相同为0 不同为1 的规则依次计算出一个新的二进制 39^2---> 0010 0111 ^ 0001 0101 à 0011 0010
取反 ~ 对二进制的每一位,1变0,0变1 得到一个新的二进制~39->~0010 0111->1101 100
• 左移 39<<2 表示将39的二进制左移两位 先算出39的二进制 0010 0111,然后后面加上两个0,前面去掉两位(左移几位就后面加几个0 前面去掉几位)
• 39<<2----->10 0111 00->1001 1100
• 右移 39>>2 和左移同理 先算二进制 0010 0111在前面加上两位符号位(正数加0 负数加1)然后后面去掉两位
• 39>>2------>0000 1001
• 左移一位相当于乘以2 右移一位相当于除以2(不完全等同) 比除法快
赋值运算符:
右值赋值给左值,左值必须是变量
a+=b等价a=a+b
其他如下图之类的运算方式都与上面方法一样
其他运算符:
sizeof求类型或者变量的大小 sizeof(int)括号里面写类型或者变量名
四种基本数据类型精度从高到低的顺序是 double float int char
算术运算符 + - * / % % -->只能是整数求余
关系运算符> >= < <= == !=
逻辑运算符 && 逻辑与 连接两个条件 如果两边条件都为真 那么最后的结果为真
|| 逻辑或 连接两个条件 如果两边条件有一个为真 那么最后结果为真
如果两边条件都为假 那么最后结果为假
了解:
[] 下标运算符 数组方括号按照数组下标索引
.点运算符 ---> 箭头运算符 结构体
* 取值/解引用 指针