7.27C语言知识点之操作符

1.操作符分类

请添加图片描述

2.算数操作符

%只能用于整数运算

3.移位操作符

移位操作符的操作数只能是整数

注意:不能移动负位数,标准未定义

3.1

整数的二进制表示形式有三种:
原码、反码、补码
原码:按照数值的正负,直接写出的二进制序列

对于一个整数是四个字节,即32bit位
其二进制序列就是32bit位

对于有符号的整数来说,其第一位为符号位,表示正负,1表示负数,0表示正数

对于无符号整数来说(用unsigned int定义的变量),所有位都是有效位,没有符号位

对于正整数,其原码、反码、补码相同
对于负的整数来说,原码、反码、补码需要计算

反码:原码符号位不变,其他有效位按位取反

补码:反码二进制加1
整数,在内存中存储的都是补码的二进制序列,在计算时也使用的是补码

提示:补码取反 再+1也可以得到原码

3.2

左移操作符:
<<
左边丢弃、右边补0
提示:即使是负数,其运算之后不改变符号
有*2的效果

右移操作符:分为两种右移方式
算术右移和逻辑右移

逻辑右移:右边直接丢弃,左边补0

大部分编译器采用的是:
算术右移:右边直接丢弃,左边补符号位
原来是负数,左边补1
原来是正数,左边补0
有/2的效果

4.位操作符

操作数必须是整数
操作的是二进制位

4.1 &按位与

对应的二进制位都为1,则为1
否则为0

应用:
要知道一个数的二进制序列最低位是什么,将其&1,结果为1,则为1,否则为0
再结合移位操作符,就可以得知二进制序列的任意一位

4.2|按位或

对应的二进制位都为0,才为0
否则为1

4.3 ^按位异或

对应的二进制位相同为0,相异为1
注意:
a ^ 0 = a
a ^ a = 0
并且按位异或支持交换律

5.单目操作符

5.1!逻辑反操作

令假为真、真为假

可用于条件判断

5.2&取地址操作符

提示:数组指针存储数组地址
Int arr[10] = { 0 };
int(*pa)[10] = &arr;

5.3*解引用操作符(间接访问操作符)

int a = 0;
int*p = &a;

//*p 是通过p中存放的地址,找到p指向的对象,*p就是a

5.4 sizeof

计算类型创建的变量的大小,单位是字节

可以用以下三种形式

sizeof计算的结果是size_t类型的
size_t是无符号整型的
对size_t类型的数据进行打印,用%zd,当不支持%zd时,用%u

5.5 ~按位取反

1取反为0、0取反为1

提示:
-1的补码是32个1

6.逻辑操作符

6.1

&&逻辑与:并且

||逻辑或:或者

注意:短路操作
&&: 左边操作如果为假,右边则不再计算
||:左边操作如果为真,右边则不再计算

未完待续…

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值