【C++】运算符与表达式(学习笔记)

一、运算符和表达式

1、运算符概述

运算符是一种告诉编译器执行特定的数学或逻辑操作的符号

2、表达式概述

在程序中,运算符是用来操作数据的,因此,这些数据也被称为操作数

使用运算符将操作数连接而成的式子称为表达式

3、算法运算符

运算符描述
+把两个操作数相加
-从第一个操作数中减去第二个操作数
*把两个操作数相乘
/分子除以分母
%取模运算符,整除后的余数
++自增运算符,整数值增加 1
自减运算符,整数值减少 1

4、关系运算符

运算符描述
==检查两个操作数的值是否相等,如果相等则条件为真
!=检查两个操作数的值是否相等,如果不相等则条件为真
>检查左操作数的值是否大于右操作数的值,如果是则条件为真
<检查左操作数的值是否小于右操作数的值,如果是则条件为真
>=检查左操作数的值是否大于或等于右操作效的值,如果是则条件为真
<=检套左操作数的值是否小于或等于右操作数的值,如果是则条件为真

5、逻辑运算符

运算符描述
&&逻辑与运算符。如果两个操作数都非零,则为真
||逻辑或道算符:如果两个操作数中有任意一个非零,则为真
!逻辑非运算符。真假逆转

6、赋值运算符

运算符描述
=赋值运算符,把右边操作数的值赋给左边操作数
+=把右边操作数加上左边操作数的结果赋值给左边操作救
-=把左边操作数减去右边操作数的结果赋值给左边操作救
*=把右边操作数乘以左边操作数的结果赋值给左边操作救
/=把左边操作数除以右边操作数的结果赋值给左边操作救
%=求两个操作数的模赋值给左边操作数
<<=左移且赋值运算符
>>=右移且赋值运算符
&=按位与且赋值运算符
^=按位异或且赋值运算符
|=按位或且赋值运算符

7、位运算符

1)位逻辑运算符

&:位与

^:位异或

|:位或

~:位取反

pqp&qp|qp^q
00000
01011
11110
10011

2)移位运算符

<<:左移运算符

>>:右移运算符

8、杂项运算符

运算符描述
sizeofsizeof 运算符返回变量的大小
Condition ? X : Y条任运算符。如果 Condition 为真,返回值为 X,否则值为Y
,逗号运算符会顺序放行一系列运算。整个逗号表达式的值是以逗号分隔的列表中的最后一个表达式的
. 和 ->成号运算符用于引用类、结构和共用体的成员
Cast强制转换运算符。把一种数据类型转换为另一种数据类型
&指针运篁符。返回变量的地址
*指针运算符。指向一个交量

9、运算符优先级

一般来说,一元运算符优先级高于对应的二元运算符

弄不清楚优先级,就加括号

二、补码

1、机器数和真值

机器数:一个数在计算机中的二进制表示形式

机器数是带符号的,在计算机用一个数的最高位存放符号,正数为0,负数为1

真值:真正的数学意义上的数值

因为第一位是符号位,所以机器数的形式值就不等于真正的数值

00000000000000000000000000000011 --> +3

2、无符号数的编码

机器数2^3(=8)2^2(=4)2^1(=2)2^0(=1)真值
000100011
010101015
1011101111
1111111115

3、有符号数的补码

机器数2^3(=8)2^2(=4)2^1(=2)2^0(=1)真值
0001-00011
0101-01015
1011-1011-5
1111-1111-1

4、另一种计算补码的方法

对正数:直接按位计算权重和

对负数:保留符号位,对后面每位取反+1

5、字节序 (Byte Ordering)

大端法(Big Endian):大多数IBM 机器,Internet传输

小端法(Little Endian):Intel 兼容机

6、关于位运算的补充说明

左移运算比较简单:末尾补零

右移运算会有两种情况:

  1. 逻辑右移:移走的位填充为0
  2. 算术右移:移走的位填充与符号位有关,负数填充1

对有符号的数,尽可能不要使用右移运算,运算取决于编译器

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wmh1024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值