运算符与表达式

1.了解什么是表达式:表达式是由运算符与数据组成的式子,每一个表达式都有运算的结果。

2.我的老师每次使用这个运算符的时候都会说到这个老梗,sizeof是运算符不是函数,别看sizeof后面还要加一个括号,但不是所有的都是函数。这也从侧面sizeof在面试题中经常出现。

3.隐式转换类型:由于有的编译系统是不能直接运算不同类型间的数据,必须要转换成同类型才能转换。

        简单的有    整形=浮点型。将浮点型赋值给整形时只会取整数部分。另一些情况就较为复杂了。

          例如

        int a=100;

        char b=97;

         float c=3.14;

         short result=a+b;

           printf("%d\n",result);//输出的结果为197,可以理解为char类型就是int类型的一种,更准确的说是char类型遇到int 类型的时候会转换为int 类型。

               float result=a+c;

            printf("%f\n,"result);//输出结果为103.14,原因是int类型遇到float或者是double类型都会转化成double。其实平常使用float类型的时候,系统为了提高精度,都会将float当成double使用除非指定使用类型为float

4.位运算:位运算符包括    << 左移   >>右移  & 按位与    | 按位或  ^按位异或   ~按位取反

1.位 的左移与右移

举一个很简单的例子:

   short i=4;

   i=i>>1;//i的输出值为2而不是3,位的移位运算方法是将数值转换为二进制 4:00000000 00000100,所有的位向右移一个单位,空出来的部分再由0补齐。结果就是0000000 00000010。再转换为十进制结果为2.

2.按位与和按位或

按位与和按位或是两个二进制数每一位对应进行与或者或运算。

例题:将0101 110 0110 1010  的第5-8位修改为10110

        unsigned short num=22122;

        short a=0xb<<4;
        short b=0xf<<4;

        unsigned short result=num&(~b)|a;

3,按位异或和按位取反

按位异或  ^    按位异或之后将相同的位变成0,不同的位变成1

按位取反  ~    0变成1,1变成0

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值