c语言中,表达式a+=a%=a%3这个怎么算请给我步骤

Python010

c语言中,表达式a+=a%=a%3这个怎么算请给我步骤,第1张

+=,%=都为复合运算符

先算a%3,a%3的意思是a对3取余,得到一个结果。

a%3=a%3的意思是a=a对(a%3)的结果取余,得到一个结果并赋值给a。

a+=a%=a%3的意思是a=a+(a%3=a%3)的结果,就得到了a 的值。

注意:在这个过程中a 值得变化。

扩展资料:

复合赋值运算符有下列这些:

+= 加法赋值

-= 减法赋值

*= 乘法赋值

/= 除法赋值

%= 模运算赋值

<<= 左移赋值

>>= 右移赋值

&= 位逻辑与赋值

|= 位逻辑或赋值

^= 位逻辑异或赋值

参考资料来源:百度百科-复合赋值运算符

>>右移就是把这个数的末尾多少位去掉,如17>>3 表示 0001 0001 的最后3位去掉,就变成了 0000 0010

左移运算 左移运算符“<<”是双目运算符。其功能把“<<”左边的运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0。

例如: a<<4 指把a的各二进位向左移动4位。如a=00000011(十进制3),左移4位后为00110000(十进制48)。6. 右移运算 右移运算符“>>”是双目运算符。其功能是把“>>”左边的运算数的各二进位全部右移若干位,“>>”右边的数指定移动的位数。

扩展资料:

位操作是程序设计中对位模式按位或二进制数的一元和二元操作。

在许多古老的微处理器上, 位运算比加减运算略快, 通常位运算比乘除法运算要快很多。

在现代架构中, 情况并非如此:位运算的运算速度通常与加法运算相同(仍然快于乘法运算)。

右移运算符“>>”是双目运算符,右移n位就是除以2的n次方。

其功能是把“>>”左边的运算数的各二进位全部右移若干位,“>>”右边的数指定移动的位数。

例如:设 a=15,a>>2 表示把00001111右移为00000011(十进制3)。 应该说明的是,对于有符号数,在右移时,符号位将随同移动。当为正数时, 最高位补0,而为负数时,符号位为1,最高位是补0或是补1 取决于编译系统的规定。Turbo C和很多系统规定为补1。

参考资料来源:百度百科-位运算符