C语言操作符超详解

操作符总结

 分类:算术操作符、移位操作符、位操作符、赋值操作符、单目操作符、关系操作符、逻辑操作符、条件操作符、逗号表达式、函数调用和结构成员。

一. 算术操作符

 生活当中常见的运算符号,其中%是取模。

+  -   *  /  %

注意事项:1.除了%操作符之外,其他的操作符都是可以作用于整数和浮点数;
.      2.对于 / 操作符,假如两个操作数都是整数则执行整数除法,但凡有一个
.      操作数为浮点类型,则执行浮点数除法;
.      3.%操作符的两个操作数都必须是整数。返回值为整数之间相除的余数。
举例:

printf("%d  ,",10%3);
printf("%d  ,",-10%3);
printf("%d  ,",10%-3);
printf("%d  ,",-10%-3);
--------------------------------------------------------
输出结果为:
1  ,-1  ,1  ,-1  ,
二. 移位操作符
<<    左移操作符             >>      右移操作符

说明:计算机位运算速度大于数学基础运算速度

1.左移操作符

移位规则:二进制序列最高位抛弃,其他位向前移一位,最低位补0。
<<   对于操作数来说相当于乘法,所移动的位数就是所乘的倍数。如果将一个数扩大八倍就会使用到左移操作符,“x<<8”

2.右移操作符

  右移操作符分为两种情况: (采用哪种方式由编译器决定,基本上都采用算术移位。 )
  1.逻辑移位:左边用0填充,右边丢弃;
  2.算术移位:左边用该值的符号位填充,右边最低位丢弃。
>> 右移操作符的算术移位对于操作数来说相当于除法,所移动的位数就是被除数。如果要将某个数缩小8倍就可以使用到右移操作数,“x>>8”注意:对负数使用右移操作符没有任何的意义(负数的符号位为1,右移之后高位补充“1”)

 注意:对于算术运算符最好不要移动负数。
小技巧:在操作数组,就可以通过右移操作符来确定数组的中间值,“mid=(left+right)>>1”。

三. 位操作符
& 按位与        |  按位或       ^ 按位异或

它们所操作的数都必须是整数!!!
  位上分别为“0”,“1”情况如下:

操作符 (?) “&”(与操作符) 或操作符 “^”(异或操作符)
0 ?0 0 0 0
0 ?1 0 1 1
1 ?1 1 1 0

例子1:不创建临时变量,交换两个数的值。

#include 
int main()
{
   
   int a = 10;
   int b = 20;
   a = a^b;
   b = a^b;
   a = a^b;
   printf(" a = %d  , b = %d \n",a,b);
   return 0;
}
----------------

你可能感兴趣的:(操作符,C基础)