您的位置:首页 > 编程语言 > C语言/C++

第9节 C语言之运算符与表达式

2017-03-14 18:57 204 查看
C语言第二条线:数据操作

 

1、运算符和表达式

    1.1 算术运算符 和 算术表达式

    1.2 赋值运算符 和 赋值表达式

    1.3 关系运算符 和 关系表达式

    1.4 逻辑运算符 和 逻辑表达式

    1.5 位运算符 和 位操作表达式

    1.6 逗号运算符 和 逗号表达式

    1.7 条件运算符 和 条件表达式

    1.8 其它的运算符

1.1 算术运算符 和 算术表达式

       +(正)    -(负)     *    /(取整)      %(取余)

       四则运算  + 加法运算,也可以表示正数。  a+b;

                     - 减法运算,也可以表示负数。  a-b ;   -5

                     * 乘法运算。  a*b;

                     / 除法运算。   

                     % 取余数

                     ++  自增运算符

                     - - 自减运算符

      注意:   / 取整 和 % 取余 ,可以做按位取值。

     例如:6789   - - - 》 千  百   十   个  上的数。

                7199秒 - - -》 XX 小时 XX 分钟 XX 秒。

  

     结论:++i+++i+++i  这样的表达式,意义不大。让大家知道不要循环给中间变量取值赋值。

 1.2 赋值运算符 和 赋值表达式

       =赋值运算符
    右结合。作用是给变量赋值用的。

    a = 100;  读作把100 赋值给变量a

     复合赋值运算符

     +=,-=,*=,/=, %= ,^= 等

     a += b  相当于   a = a+b;

     a -= b  相当于   a = a-b;

     a /=b   相当于    a = a/b;

1.3 关系运算符 和 关系表达式

        ==  相等       (count == 3 ,3 == count)

        !=    不相等  (a != b)   如TP-LINK

       >  大于       ( a>b )    常和条件判断语句同时使用

       <  小于       ( a<b )

       >=  大于等于    (a >= b)

       <=  小于等于  (a <= b)

1.4 逻辑运算符 和 逻辑表达式

        && 逻辑与  表示并列关系  多个条件必须同时满足。

        ||  逻辑或  表示选择关系  多个条件只要满足其一即可。

          !逻辑非  表示取反       !0  真

1.5 位运算符 和 位操作表达式

     & 按位与

     |   按位或

     ~  按位取反

    ^  按位异或

    <<  按位左移

    >>  按位右移

  广泛的用于嵌入式开发,比如地铁上的站点提示灯

 - - - - -》行驶方向

益田 - - -购物公园 - - 红岭- - - 老街- - - 田贝- - -布吉 - - 横岗- - 》双龙

                 & 按位与

    5         0000  0101

&  3         0000  0011

- - -  - - - - - - - - -

               0000  0001

 

总结:两个数如果是相同2进制位上的数

          1和1   相与    结果 1

          0和1   相与   结果 0

       作用:可以使得一个数指定位上的数  置 0

                |   按位或

    5         0000  0101

|   3         0000  0011

- - -  - - - - - - - - -

               0000  0111

总结:   如果是  1 和 0  相或  结果 1

            如果是  0 和 0  相或  结果 0

       作用:可以把数的指定2进制位上的数 置换成 1

 ~ 按位取反

  1、一个数取反以后的结果就是:   -1 - (这个数)

        1.1正整数取反   5                 -1 - 5 = -6

        1.2负整数取反 -5                -1 - (-5) = 4

 ^  按位异或

    可以用异或 进行加密。第一次异或 可以改变原来的数据。 c = a^b;

    第二次异或就可以变回原来的数。 a = c ^ b;

    

    5         0000  0101

^   3         0000  0011

- - -  - - - - - - - - -

              0000   0110

总结:相同2进制位上数,数值不相同则为1,数值同则为0。

    作用:1.不借助中间变量交换两个数的值。

                2.异或加密的程序。OK

    左移 << 和 右移 >>

    1.我们不建议使用 >> 右移动,尤其是要求计算机长期工作的,如 服务器 7*24。(注意:循环的右移的过程中,有风险)

    2.<< 左移一位 1 -> 2 -> 4 左移几位就相当于乘以2^n

        0000 0001

        0000 0010

        左移:规则 由低位向高位移动,从右向左移动,高位移出,低位补0;

        右移:规则 由高位向低位移动,从左向右移动,低位移除,高位补0;

   1.6、逗号运算符和逗号表达式

       , 

      作用 ,作为分隔符.

      1.可以分隔多个变量    

          int  a,b,c,d,e;

          int  a = 0, b = 0, c = 100;

      2.分隔多个参数

          printf("%d %d %d",a,b,c);

          scanf("%d,%d",&a,&b);

   1.7、条件运算符和条件表达式

       ?: 三目运算符

       条件?真:假 (条件运算符 可以写出和复杂的表达式 且 可以嵌套)。

   1.8、其它的运算符

     [ ]  下标运算符

     .     点运算符           结构体运算符    rui.name;

    ->   指针运算符        point -> name;

    &    寻址运算符         用于取地址的

    *     间接寻址运算符   用于取值的

    ( )   函数运算符
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  运算符 表达式