位移运算

#include < stdio.h >



void  main() {
     
int a=2,b=4,c=6,x,y;
     y
=(x=a+b),(b+c);
     printf(
"y=%d,x=%d",y,x);


  
int i=8;
  printf(
"%d ",++i);//9
  printf("%d ",--i);//8
  printf("%d ",i++);//8
  printf("%d ",i--);//9
  printf("%d ",-i++);//-8
  printf("%d ",-i--);//-9


    
//a+=5      等价于a=a+5
    
//x*=y+7    等价于x=x*(y+7)
    
//r%=p      等价于r=r%p


/*
    unsigned x;
    int p=4;
    int n=3;
    int z;
    z=(x >> (p+1-n)) & ~(~0 << n);//z=3
    printf("%d ",z);
    
*/

    
/*
    int a=2;
    int b=5;
    int c=3;
    int r=7;
    int x=9;
    int y=9;
    int k=2;
    int j=1;
    int z,h,i,w,m,n;
    
    m=j/y;//除不尽就为0,除的尽取整
    printf("m=%d ",m);//m=0

    z=(a*2)/c;// 与上面一样,不过()有更高的优先级:4/3=1;3/4=0;
    printf("z=%d ",z);//z=1

    h=(x+r)*8-(a+b)/7;//优先级与上一样128-1=127
    printf("h=%d ",h);//h=127

    i=x++&++y;
    //n=n&0177;    //n=76
    n=n&~077;    //-858993472        //------'&'按位与(and);经常用于屏蔽某些二进制位
    printf("n=%d ",n);
    printf("i=%d ",i);//i=8
                            //----'|'按位或(or)
                            //----'^'按位异或(xor)
                            //----'<<'左移
                            //----'>>'右移
                            //----'~'一元运算符,分别操作二进制位上1变0,0变1


    w=(++i)-(j++)+(k--);
    printf("w=%d ",w);//w=10

  
*/


}
#include < stdio.h >
// 二元运算
void  main()
{
    
int a=1;
    
int b=3;
    
int x;
    x 
= (a > b) ? a : b;
    printf(
"x=%d ",x);
}
#include < stdio.h >
void   main()
{
    unsigned 
int x;
    
int p=4;
    
int n=3;
    
int z;

    
//z=(x >> (p+1-n)) & ~(~0 << n);//z=3
    
//>> <<左右移动操作符 只能转换为二进制后在移。
    
//>>>右移,无符号的unsigned的右移
    
//~(~0<<n)=7
    
//~0<<n= -8
    
//逻辑运算符
//  ~ 0 = -1;~ -1=0;~5=-6;~-5=4;
//    z=13|10;//按为或,表示只要有一个运算对象为1,结果就是1
//    z=13^10;//按位异或,表示只有对象不同的时候才为1.否则为0
//    z=13&10;//按位与,表示只有运算对象相同的时候才为1,否则为0

    z
=(p>n)?1:0;

    printf(
"%d ",z);

}

 2

**************************************
int a=2,b=4,c=6,x,y;
y=(x=a+b),(b+c);
printf("y=%d,x=%d",y,x);//y=6,x=69
*************************************

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值