• C/C++运算符及其优先级


    1、自增自减

    (1)前置运算:”先变后用“   如++i。

              后置运算:”先用后变“   如i--。

           比如:

    int i = 5。
    y1 = ++i;   
    y2 = i++;

    结果:y1 = 6;y2=6;i=7.


    (2)前置和后置另一个差别:前置能够用在等号的两边;而后置仅仅能位于等号的右边。

              这是由于前置返回操作数本身,后置返回的是一个暂时变量。

    int mian()
    {
    	int a = 3;
    	a += (++a);       //a=7
    	a += (a++);       //a=16
    	(++a) += (a++);    //a=35
    	(a++) += a;   //不对
    }

    2、关系与逻辑运算符

    (1)关系运算符(四种)和逻辑运算符(三种):返回的是布尔类型的结果

    关系运算符,比如:<(小于号),>(大于号),<=(小于或等于),>=(大于或等于),!=(不等于)

    逻辑运算符,比如:!(非),&&(且),||(或)

    (2)关系的优先级 > 逻辑运算符


    3、位运算

       (1) 共六种:&、|、^、~、《(左移)、》(右移)

               异或^:仅当两位不同样时,结果才是1。


       (2)进制转换

    [十进制转二进制]

               正十进制转二进制除二取余倒排序。一直除到商等于1或0时为止.

    所以。52相应的二进制数是:110100。

    负整数转换为二进制:取反加一

    解释:将该负整数相应的正整数先转换成二进制,然后对其“取补”,再对取补后的结果加1就可以。

    比如要把-52换算成二进制:

    1.先取得52的二进制:00110100

    2.对所得到的二进制数取反:11001011

    3.将取反后的数值加一就可以:11001100

    即:(-52)10=(11001100)2


    [十进制转十六进制]:除16取余倒排序。

    十六进制数的表示:前缀法:0xA1

                                          后缀法:A1H


    [二进制和十六进制转十进制]

    算法一样。

    都是  5*16^1+3*16^0 这样的形式


        (3)移位运算

    规则:移位后,丢弃移出去的数,移后空白位补位规则例如以下:

    int       左移低位补零。右移高位补符号位

    unsighed int   低位高位都补零


    4、类型转换

    (1)赋值转换:将一种类型的值赋给还有一种类型的变量。

                int   a = 3.14。

    (2)表达式转换

    a、整型提升

    b、运算时转换

              同一类型的有符号和无符号类型所占的内存空间同样。

    (3)显示转换

    (4)其它转换


    5、运算优先级

    (1)括号下标结构体成员优先级最高

    (2)单目高于双目;算术双目高于其它双目

    (3)算术>移位>关系>位运算>逻辑

    (4)三目运算仅仅有一个逗号,低于逻辑

    (5)赋值比”,“高

  • 相关阅读:
    laravel中使用include和component方法中的一点小区别
    【解决】Converting circular structure to JSON
    NUXT中使用axios,自己项目测试记录
    iPhone“连到系统上的设备没有发挥作用”原因分析及解决方法 20200105
    vue-touch不能上下滑动的问题【解决】
    动态加载swiper,默认显示最后一个swiper-slide怎么办
    CentOS 7 修改开机等待时间
    使用IIS管理器搭建FTP服务器以及其启用虚拟主机名
    织梦后台删除子栏目不成功的解决方法
    去除织梦标签[field:image/]所产生的宽高
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/6727172.html
Copyright © 2020-2023  润新知