C语言基础 — 运算符

运算符

    • 1、运算符
      • 1.1 易错运算符
      • 1.2 位运算符


1、运算符

1.1 易错运算符

  1. ++,-- 注意区分前置和后置
int i = 10;
int j = ++i;  // 执行此语句之后,j=11,i=11
i = 10;
int k = i++;  // 执行此语句之后,i=11,k=10
  1. ‘/’ 整除,注意整除问题,即整数除以整数结果为整数,舍弃末尾的小数;不能除0

  2. << 按位左移,右边统一补0
    C语言基础 — 运算符_第1张图片

  3. >> 按位右移,如果是有符号数左边补符号位,如果是无符号数左边补0
    C语言基础 — 运算符_第2张图片

  4. <, > 小于,大于符号,注意不能连续比较

1.2 位运算符

位运算符主要是以二进制规则进行运算

1.与(&)运算符

使用规则:两个二进制操作数对应位同为1 结果位 才为1,其余情况位0:
举个简单的栗子:
整数 a = 15 整数 b = 127
计算:(a & b)
C语言基础 — 运算符_第3张图片
2.或(|)运算符
使用规则:两个二进制操作数对应位只要有一个为1 结果位 就为1,其余情况为0
举个简单的栗子:
计算:(b | c)
C语言基础 — 运算符_第4张图片

3.非(~)运算符
使用规则:一个二进制操作数,对应位为0,结果位为1;对应位为1,结果位为1;(取反)
作用是将每位二进制位取反
举个简单的栗子:
计算:整数 a = 1; 计算(~a)

【第一步】首先将数值表示成二进制形式,对其取反
C语言基础 — 运算符_第5张图片

这是内存中的保存形式。实际上,我们读取的十进制是根据 原码 来读取,而在内存中,数值都是以 二进制补码 的形式存储的。对于正数,其原码、反码、补码均相同;对于负数,其补码得到的过程:原码 —> 反码 —> 补码

【第二步】计算取反后的补码吗,其值就是结果
C语言基础 — 运算符_第6张图片

4.异或(^)运算符
使用规则:两个二进制操作数对应位相同为0,不同为1
举个简单的栗子:
计算:(e ^ f)
C语言基础 — 运算符_第7张图片

0 和 任何数 异或的结果均为 任何数


C语言基础 — 运算符_第8张图片


你可能感兴趣的:(C语言,c语言,开发语言)