初学者都能掌握的操作符(中)

(1)位操作符(& | ^)

&:(按二进制位“与”)

也就是两个数的每一位二进制数按照 “与” 的算法,如下:


int a = 3 ,b = 5 ;

c = a & b;

我们首先写出a和b的二进制数来具体分析:

a:00000000000000000000000000000011

b:00000000000000000000000000000101

则c就是a和b的每一位二进制按照来计算(有0则0,1&1得1)所以c的二进制如下:

c:00000000000000000000000000000001

所以c的数值是1

| :(按二进制位“或”)

也就是两个数的每一位二进制数按照 “或” 的算法,具体的原理与上述 & 一致,规则为(有1得1

^ :(按二进制位“异或”)

规则是(相同位0,相异为1)

练习:如不创建第三个变量来实现两个变量的数值交换:

方法一:可以使用 a=a+b ; b=a-b ; a=a-b; 

方法二:可以使用 a=a^b ; b=a^b ; a=a^b;

(方法二的具体原理读者可以自己写出二进制数来计算)

(2)赋值操作符:(=,+=,/=,>>=...)

该操作符的原理很简单,只需知道具体如何计算即可

如:a+=5 等价于 a=a+5 其余的同理计算即可:

(3)单目操作符:(!,-,+,&,sizeof,~,--,++,*,(类型))

!:“逻辑反”(优先级比较高) 具体意思是 非 也就是

可以反转一个操作数的真值或假值。换句话说,如果表达式为 true,那么 ! 运算符将返回 false,如果表达式为 false,则返回 true。(其中1代表true,0代表false)

-,+:也就是正负值

sizeof:“计算类型的字节大小”

该操作符切勿认为是一个函数,其作用为计算某一个类型在内存中所占空间的大小,单位为字节。

如:int a ;sizeof a;计算出的大小应该是 4

可计算数组的长度,如下:

int arr[]={2,4,8};

int b = sizeof(arr)/sizeof(arr[0]) ; 计算出b的大小就是该数组的长度

~ : “二进制按位取反”

也就是某一个数的二进制数每一位都取反(0变为1,1变为0)

--,++ :“自加和自减”

需要注意的是前置和后置的区别

前置++:也就是先使用后自加

后置++:也就是先自加后使用

-- 的情况与之同理

比如 while(a++) 和 while(++a)的区别(还需读者按照上述规则自行探索)

(类型):“强制类型转换”

如:int a = (int)3.14 ; 这里原本定义的类型是int型的,但赋值是浮点型,但是使用(int)就是将3.14强制转换为int型

4)关系操作符(==,!=,>=,<=)

此类操作符常用于条件语句和循环语句的判断表达式中,比较简单,这里不在赘述

(5)逻辑操作符(&&,||)

&& : 逻辑与    || : 逻辑或   (在计算机中0代表假,1代表真,大于1的数值也是真)

 && (逻辑与):
① 当逻辑与左边为false(假),则不再进行逻辑与右边的判断,结果为false(假)
② 当逻辑与左边为true(真)则进行右边判断,右边为false(假),结果为false(假)
③ 当逻辑与左边为true(真)则进行右边判断,右边也为true(真),则结果为true(真)
 || (逻辑或):(三种)
① 当逻辑或左边为false(假),继续逻辑或右边的判断,如果也为false(假),结果为false(假)
② 当逻辑或左边为false(假),继续逻辑或右边的判断,如果为true(真),结果为true(真)
③ 当逻辑或左边为true(真),则不再进行逻辑或右边的判断,结果为true(真)

这里面包含了短路现象

具体就是在&&左边的表达式为假的时候(也就是计算出数值为0)将不在执行后面的语句,整体的表达式值为0(假);在 || 左边的表达式为真的时候(也就是计算出数值大于0)将不在执行后面的语句,整体的表达式值为1(真)

(6)条件操作符(表达式1 ?表达式2:表达式3)

该操作符是一个三目操作符,具体是 表达式1用来判断,为真的话就取表达式2的值,为假的话就取表达式3的值

  • 39
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值