刚学了一些C++的书上没见过的符号,记录一下

一, <<和>>:就是cout和cin后面的那个,但在这里并不是说cout和cin后面那个。它们是位左移运算符和右移运算符,它们的作用是把一个数的二进制形式向左或向右移动。

举两个例子,18(二进制形式为00010010)<<2 = 72 (二进制形式为01001000,18的二进制形式向左移了两位),77(二进制形式为1001101)>>3=9(二进制形式为0001001,77的二进制形式向右移了两位)。

其实,说白了,m<<n就是m*(2的n次方),m>>n就是m/(2的n次方),当然,这里的m,n都是整型变量。另外,这两个运算符能够节省时间,在程序优化中这一种方法是十分重要的,例如a*9可用(a<<3)+a代替(注意,"+"运算比"<<"运算优先)。

 

二,算术与&,算术或|,算术非~,算术异或^:这些是非常重要的二进制运算符,还是举例子吧:

25(二进制为00011001)&19(二进制为00010011)=17(二进制为00010001),&运算符就是把两个整型的二进制形式逐位比较,只有两个数某一位都是1,结果的该位才是1,其它的都是0,也就是有0是0,无0是1

25(二进制形式为00011001) | 19(二进制形式为00010011) =  27(二进制形式为00011011),| 运算符就是把两个整型的二进制形式逐位比较,只有两个数某一位都是0,结果的该位才是0,其它的都是1,也就是有1是1,无1是0

~ 19(二进制形式为00010011) =  -20(二进制形式为10010100),额(⊙﹏⊙),这个看半天没看懂,反正就是对于一个十进制数n, ~n=-n-1

25 (二进制形式为00011001) ^ 19(二进制形式为00010011) =  10(00001010),也就是相同为 0,不同为1

 

三,一些运算符的先后顺序(由高到低):

 

1.   ()(小括号)     [ ](数组下标)  .(类的成员)   ->(指向的类的成员)

2.   !(逻辑非)      .(位取反)      -(负号)     ++(自增)   --(自减)   &(取址)

3.   *(指针)                       sizeof(长度计算)

4.   *(乘)            /(除)     %(取模)

5.   +(加)            -(减)

6.   <<(位左移)   >> (位右移)

7.   < (小于)       <= (小于等于)     > (大于)       >= (大于等于)

8.   == (等于)      != (不等于)

9.   & (算术与)

10. ^ (算术异或)

11.  | (算术或)

12. && (逻辑与)

13. || (逻辑或)

14. ? :

15. =    +=   -=

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值