栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

四、C语言运算符

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

四、C语言运算符

文章目录
  • 1、运算符分类
  • 2、运算详解
    • 1.a++和++a的区别
    • 2.位运算符
    • 3.杂项运算符
    • 4.在计算器中,负数以其正值的补码形式存在
    • 5. ~操作

1、运算符分类
  • 算数运算符
    • %:取模运算符,整除后的余数,只适用于整数,不可以是小数,其结果符号取决于%左边的符号
  • 关系运算符
    • 等于、不等于、大于、小于、大于等于、小于等于
  • 逻辑运算符
    • &&:逻辑与运算
    • ||:逻辑或运算
    • !:逻辑非运算符
  • 位运算符
    • &:按位与
    • |:按位或
    • ^:异或运算
    • ~:取反运算
      • ~1 = -2
      • ~0 = -1
    • <<:左移运算符,右边补0
    • />>:右移运算符,正数左补0,负数左补1
  • 赋值运算符
运算符作用
=c = a+b
c+=ac=c+a
c-=ac=c-a
c*=ac=c*a
c/=ac=c/a
c%=ac=c%a
c<<=2c=c<<2
c>>=2c=c>>2
c&=2c=c&2
c^=2c=c^2
c|=2c=c|2
  • 杂项运算符
    • sizeof():返回变量的大小
    • &:返回变量的地址
    • *:指向一个变量
    • ?::条件表达式,三元运算符
2、运算详解 1.a++和++a的区别
  • 代码实现:
    #include
    
    int main(){
        int c;
        int a = 10;
        c = a++;//c的结果为10
        printf("先赋值后运算:%dn",c);
    
        a = 10;
        c = ++a;//c的结果为11
        printf("先运算后赋值:%d",c);
    }
    
  • 运行结果:
    先赋值后运算:10
    先运算后赋值:11
    
2.位运算符
  • 代码实现:
    #include
    #include
    
    void binary(int x){
        int b,i,k = 0;
        int remainder[30];
        while (x != 0)      
        {
            b = x/2;
            k++;
            remainder[k] = x - b*2;
            x = x/2;
        }
        for(i = k;i >= 1;i--){
            printf("%d",remainder[i]);
            
        }
        printf("n");
        
    }
    
    int main(){
        unsigned int a = 60; //00111100
        unsigned int b = 13; //00001101
        int c = 0;
        c = a & b;
        printf("a,b按位与:");
        binary(c);
        c = a | b;
        printf("a,b按位或:");
        binary(c);
        c = a ^ b;
        printf("a,b按位异或:");
        binary(c);
        c = ~a;
        printf("a取反:");
        binary(c);
        printf("a取反:%dn",c);
        c = a << 2;
        printf("a左移两位:");
        binary(c);
        c = a >> 2;
        printf("a右移两位:");
        binary(c);
        
    }
    
  • 运行结果:
    a,b按位与:1100
    a,b按位或:111101
    a,b按位异或:110001
    a取反:-1-1-1-10-1
    a取反:-61
    a左移两位:11110000
    a右移两位:1111
    
3.杂项运算符
  • 代码实现:
    #include
    
    int main(){
        int a = 4;
        short b;
        double c;
        int *ptr;//定义一个指针
        printf("a的大小:%ldn",sizeof(a));
    
        ptr = &a;//将a的地址赋给ptr
        printf("*ptr的值:%dn",*ptr);//取地址对应的值
    
        a = 10;
        b = (a == 10) ? 20 : 30;//三元运算符
        printf("b的值:%d",b);
    }
    
  • 运行结果:
    a的大小:4
    *ptr的值:4
    b的值:20
    
4.在计算器中,负数以其正值的补码形式存在
  • 源码:0001
  • 反码:1110
  • 补码:反码加1 1111
5. ~操作
  • 作用:按位取反
  • 代码实现:
    #include
    #include
    
    int main(){
        int b = 13; //00001101
        printf("%x",~b);
    }
    
  • 运行结果:
    fffffff2 //11110010
    
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/990389.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号