运算符与表达式2~>>(关系,位,求字节数)<<~

@[TOC](关系,位)

目录

 关系

位 

# 按位与

# 按位或 

# 按位异或 

# 左移,右移 

# 按位取反

求字节数


 关系

运算符含义举例结果
<小于3<51
>大于3>50
<=小于等于3<=51
>=大于等于3>=50
==等于3==50
!=不等于3!=51

    比较结果成立时,结果为1;不成立时,结果为0。

    与关系运算的两个运算量可以是任意类型的数据。

    优先级:(<,>,<=,>=)高于(==,!=)

    结合性:自左至右。

#include <stdio.h>
int main()
{
   printf("%d",3>5);          //运行结果依次为 0,0,3,1
   printf("%d",3<4>2);
   printf("%d",3+(4<3)*4);
   printf("%d",3+4<3*4);
   return 0;
}

位 

运算符含义举例结果
&按位与3&51
|按位或3|57
^按位异或3^56
~按位取反(单目运算符)~3-4
<<左移3<<16
>>右移3>>1

1

       位运算是对整型数据进行的运算,将两个运算符对应的二进制逐一按位进行运算,而且符号位需要参加运算。

       分析位运算的结果时,先将运算的整数转换为二进制再进行按位运算。

# 按位与

  00000011                   (3的二进制)

&00000101                  (5)

  00000001  即 +1        (与的运算法则,仅当两位都为1时,结果为1)

# 按位或 

 00000011

|00000101                   (或的运算法则)

 00000111  即 +7

# 按位异或 

  00000011

^00000101

  00000110  即+6 (异或运算的规则:相异为真,相同为假。) 

# 左移,右移 

       用法:左移:a<<n,将a(a这个数的二进制位全部)按照二进制位向左移n位,变量a二进制的最高位n位溢出,舍弃;最低的n位用0补齐。

                  右移:与左移相似,将一个二进制位的操作数按指定移动的位数右移,移出位被舍弃,左边溢移出的空位,如果是不带符号数,则补入的数全为0;如果是带符号数,则补入的数全部等于原符号位(原数的最左端位上的原数)。

# 按位取反

~00000011

  11111100 (此为负数,计算机中所有二进制输出都是补码的形式,需要将它转化为我            11111011(反码)           们能理解的二进制形式,符号位不变,减1,得到反码(补码=反    10000100(原码)          码 +1),再将反码的符号位不变,按位取反得原码,即得-4。)

求字节数

       sizeof()运算符,是单目运算符,用于计算一个某种类型的运算量所占用的字节数(返回值为整数)。

       使用方式:sizeof(类型标识符);

                       sizeof(变量名);或sizeof (空格) 变量名;

例子:

#include <stdio.h>
int main()
{
  int a;                //定义整型变量a
  double x;             //定义double型变量x
  printf("%d,%d",sizeof(a),sizeof x);                 //运行结果4,8
  printf("%d,%d",sizeof(int),sizeof(double));         //运行结果4,8
  return 0;
}                        

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值