设为首页 加入收藏

TOP

复合赋值运算符
2012-11-13 12:42:16 来源: 作者: 【 】 浏览:344
Tags:复合 运算

    复合的赋值运算符,又称为带有运算的赋值运算符,也叫赋值缩写。
   
    例如:i=i+j;可表示为 i+=j;这里+=是复合赋值运算符。
   
    同样的共有10种这样的运算符,它们是:
   
    += 加赋值
   
    -= 减赋值
   
    *= 乘赋值
   
    /= 除赋值
   
    %= 求余赋值
   
    &= 按位与赋值
   
    | = 按位或赋值
   
    ^= 按位异或赋值
   
    《= 左移位赋值 》= 右移位赋值
   
    <> 当右操作数又是一个赋值表达式时,形成多重赋值表达式。例如:
   
    i=j=0; //结果i、j的值都为0
   
    构成复合赋值表达式的一般形式
   
    变量 双目运算符=表达式
   
    它等效于
   
    变量=变量 运算符 表达式
   
    例如:
   
    a+=5 等价于a=a+5
   
    x*=y+7 等价于x=x*(y+7)
   
    r%=p 等价于r=r%p
    
     
    
    1.= 赋值运算符
   
    变量=表达式 如:a=3;将a的值赋为3
   
    2./= 除后赋值
   
    变量/=表达式 如:a/=3;即a=a/3
   
    3.*= 乘后赋值
   
    变量*=表达式 如:a*=3;即a=a*3
   
    4.%= 取模后赋值
   
    变量%=表达式 如:a%=3;即a=a%3
   
    5.+= 加后赋值
   
    变量+=表达式 如:a+=3;即a=a+3
   
    6.-= 减后赋值
   
    变量-=表达式 如:a-=3;即a=a-3
   
    7.《= 左移后赋值
   
    变量《=表达式 左移就是将《左边的数的二进制各位全部左移若干位,《右边的数指定移动位数,高位丢弃,低位补0, 移几位就相当于乘以2的几次方
   
    8.》= 右移后赋值
   
    变量》=表达式 右移运算符是用来将一个数的各二进制位右移若干位,移动的位数由右操作数指定(右操作数必须是非负值),移到右端的低位被舍弃,对于无符号数,高位补0.对于有符号数,某些机器将对左边空出的部分用符号位填补(即“算术移位”),而另一些机器则对左边空出的部分用0填补(即“逻辑移位”)。注意:对无符号数,右移时左边高位移入0;对于有符号的值,如果原来符号位为0(该数为正),则左边也是移入0.如果符号位原来为1(即负数),则左边移入0还是1,要取决于所用的计算机系统。有的系统移入0,有的系统移入1.移入0的称为“逻辑移位”,即简单移位;移入1的称为“算术移位”.
   
    9.&= 按位与后赋值
   
    变量&=表达式 按位与是指:参加运算的两个数据,按二进制位进行“与”运算。如果两个相应的二进制位都为1,则该位的结果值为1;否则为0.这里的1可以理解为逻辑中的true,0可以理解为逻辑中的false.按位与其实与逻辑上“与”的运算规则一致。逻辑上的“与”,要求运算数全真,结果才为真。若,A=true,B=true,则A∩B=true
   
    10. ^= 按位异或后赋值
   
    变量^=表达式 参与运算的两个量按照对应的位进行异或运算,且   0^0→0, 0^1→1, 1^0→1, 1^1→0   此外,一个数与0异或仍保持不变,即a^0=a   一个数与自己异或结果为0,即a^a=0
   
    11.|= 按位或后赋值
   
    变量|=表达式 参与运算的两个量按照对应位进行或运算,且0|0→0, 0|1→1, 1|0→1, 1|1→1
   
    注意
   
    1. 多重赋值表达式不能出现在变量说明中。例如:
   
    int i=j=0;   是非法的。
   
    例:有变量说明
   
    int a=2,b;
   
    指出下面表达式运算后a和b的结果。
   
    b+=b=++a;
   
    答:a为3,b为6.
   
    <> 有时将赋值运算与比较运算结合在一起形成嵌入赋值。例如:
   
    while ((ch=getchar())!='n‘);
   
    这条语句的含义是:等待用户按下回车键后程序向下执行。
   
    2. x *= y+8等价于x=x*(y+8),不等价于 x = x*y+8.
   
    同样:z &= y-x等价于z = z & (y-x),而不等价于z = z &y -x.

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇内部函数和外部函数 下一篇整形数据的存储

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: