《重生到现代之从零开始的C语言生活》—— 操作符1

操作符的分类

我们之前见过了很多的操作符,但是因为学的不深所以没有系统的讲解过
操作符分为哪些嘞

  • 算数操作符+ , - , * , % , /
  • 位移操作符>> , <<
  • 位操作符& | ^
  • 赋值操作符= , += , -= , *= , /= , %=, <<= ,>>= ,&=, |= , ^=
  • 单目操作符!, ++ , -- , & , * , - , + , ~ , sizeof , (类型)
  • 关系操作符> , >= , < , <= , == , !=
  • 逻辑操作符&& , ||
  • 条件操作符? , :
  • 逗号表达式,
  • 下标引用[ ]
  • 函数调用( )
  • 结构成员访问 . 、- >

上述的操作符我们基本知道了算数操作符,赋值操作符,逻辑操作符 ,条件操作符和一部分单目操作符
而操作符中会有一些关于二进制的知识,建议补充知识后再来了解

移位操作符

左移操作符:<<
右移操作符:>>
此操作符的操作数必须是整数

左移操作符

移位规则:左边抛弃,右边补零
假如num=100001
如果num<<2
就是num=000100

右移操作符

移位规则:分两种

  1. 逻辑右移:左边填0,右边丢弃
  2. 算数右移:左边用原该值的符号位填充,右边丢弃

编译器基本上用的都是算数右移

对于移位操作符,不要一定负数位,这个标准是未定义的

位操作符

位操作符有:& | ^ ~

  • &:按位与
  • | :按位或
  • ^ :按位异或
  • ~:按位取反

&:按位与

只要对应的二个二进位都为1时,结果位就为1,否则为0
举个例子

int a = 10011;
int b = 10101;
a&b;
//那么就是
//        10011
//        10101
//结果就是 10001

| :按位或

只要对应的二个二进位有一个为1时,结果位就为1
举个例子

int a = 10011;
int b = 10101;
a|b;
//那么就是
//        10011
//        10101
//结果就是 10111

^ : 按位异或

进行异或运算时,当前位的两个二进制表示不同则为1相同则为0
举个例子

int a = 10011;
int b = 10101;
a|b;
//那么就是
//        10011
//        10101
//结果就是 10001

~ :按位取反

就是把操作数的每一位都取反
举个例子

int a = 10001
~a;
//这时a=011110

单目操作符

单目操作符中比较陌生的是& *,我们在指针在讲他

逗号表达式

逗号表达式就是用逗号隔开多个表达式

逗号表达式,从左往右执行,整个表达示的结果是整个表达式的结果

举个例子

int a = 2;
int b = 3;
int c = (a+1,b+1,b+2)//c的数值是b+2的数值,为5

今天的知识讲解完啦,如果觉得有用可以点一下赞和关注,也可以先收藏以防需要时找不到哦,当然如果作者写的哪里有问题欢迎指出,我们一起进步!!!

祝看到这里的人天天开心哦(笔芯)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值