v6-v9 运算符

cat demo2.c和 tail demo.c 都是查看demo.c的意思

关系运算符

逻辑运算符

v7 位运算

%x代表十六进制,#代表是自动添加0x前缀

在一个代码中,给一个数字取反,实际上是把十六进制转换成二进制,再转换成十六进制。

x=0126,y=0xac

             x=0000 0001 0010 0110

             y= 0000 0000 1010 1100

z=x&y      0000 0000 0000 0100

z=0x04 或者写成0x4也可以,都是一样的

 异或运算

位移运算符的注意事项:

a=0000 0000 1110 0100  b=a << 3(这个地方给的就是两位的16进制,不需要在前面加8个0)

    0000  0111 0010 0000   ×

a=1110 0100  ,b=a << 3

b= 0010 0000  b=0x20

v8

思考题:

如何把一个无符号数的某位快速置1?通过或运算

如何把一个无符号数的某位快速清0?通过与运算

如何利用位运算把十进制的数转换成十六进制?取余。

第几位要清零?就把那一位置0,其他的置1

比如把十六进制,0x14的第三位清零,则下面与上的那个数第三位要置0,其他的全部都是1

下面与上的那个数是怎么来的呢?通过y的数变出来的,比如我们可以通过y=2,变化一下再与x相与。

a / 16 就是把数

左移1位,*2,左移2位*4,右移4位,/16

v9 运算符

赋值运算符

特殊运算符

1、三目运算符

x=70,x++,先判断x是多少,再自增

2.逗号运算符 执行顺序是从左到右,逗号表达式的值取最右边一个

sizeof运算符  sizeof(),这个括号里可以加类型也可以加变量名,具体见如下代码。

运算符的优先级

运算符的优先级

x ++ && y++ || ++z

x+=y==z,y=x+2,z=x+y+x>0这个地方有两种理解,

一种是把x+=y==z,y=x+2,z=x+y+x>0

另一种是x+=y==z,y=x+2,z=x+y+x>0

 x+=y==z,y=x+2,z=x+y+x>0

第一个式子: x+=y==z,(==的优先级高于+=),因此先算y==z,为1,x+=1,x=x+1=2

第二个式子: y=x+2,y=4

第三个式子:先算x+y+x,是8>0, 因此z=1

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值