C编程中>>=是什么意思

C编程中>>=是什么意思
能具体点吗,
比如a>>=1能解释下吗

是移位和赋值的复合运算。就等价于a=a>>1
我对>>详细介绍一下,它是移位运算符,但是移位分逻辑移位和算术移位。
在c语言中规定当操作数是有符号数时,该运算是算术移位,相反,是逻辑移位。

比如 unsigned char a=129; i的二进制为:10000001 a>>=1,因为该数是无符号数,所以是整体向右移一位,高位用0填充。 得a=01000000 (即a=64)
char a=129; i的二进制为:10000001 a>>=1,因为该数是有符号数,整体向右移一位,高位保持不变。a=11000000 (即a=-64)
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-10-28
a>>=1就是a=a>>1;
就是把a的二进制右移1位,得到的值再赋给a.
第2个回答  2008-10-28
想想+=是什么意思,a+=1就是很好的例子
一样的
第3个回答  2008-10-28
就好象其他逻辑赋值语句一样啊~!
比如:a=10,a>>=2;
结果就是a=10/(2*2),
很简单吧 ?
OK!!!
第4个回答  2008-10-28
右移一位(通常是由符号数的位移)

a= 8;
a>>=1;
运算后
a=4

小心>>对于有符号数是会做符号扩展的,也就是a=0xfffe a>>=1 后 为0xffff
第5个回答  2019-12-06

C编程中>>=是什么意思
是移位和赋值的复合运算。就等价于a=a>>1 我对>>详细介绍一下,它是移位运算符,但是移位分逻辑移位和算术移位。在c语言中规定当操作数是有符号数时,该运算是算术移位,相反,是逻辑移位。比如 unsigned char a=129; i的二进制为:10000001 a>>=1,因为该数是无符号数,所以是整体向右移一位...

C语言中“>>=,<<=,&=,^=,|=”分别表示什么意思?请举例说明
1、C语言中的 >>= 意思为:右移后赋值 代码示例为:x = 8; x >>= 3;右移后结果为:00000000 00000000 00000000 00000001 2、C语言中的 <<= 意思为:左移后赋值 代码示例为:x = 8;x <<= 3;左移后赋值结果为:00000000 00000000 00000000 01000000 3、C语言中的 &= 意思为:按位与...

c语言中<<=,>>=,&=,∧=和|=是什么意思?
在C语言中,运算符<>=、&=、∧= 和 |= 属于复合赋值运算符。复合赋值运算符结合了赋值运算符和对应的位移、按位与、按位或运算。例如,使用 a <<= b 相当于执行 a = a << b,其中 '<>= b 会将 a 的值右移 b 位,然后赋值给 a。按位与运算符 (&) 和按位或运算符 (|) 的复...

c语言编程用的符号有哪些?是什么意思
1、C语言常用编程符号:取余数 5%3=2&位的和 2&3=2|位或 2|3=3!非 !2=0 &&和 3&&5为真 4&&0 为假||或 3||0为真 0||0为假+= 相当于 a+=b a=a+b,其他相似 如*= -= \/=<< 位向左移 >>位向右移sizeof 确定占的空间大小 sizeof(int)>< >= <=这就...

c语言中==与=的区别是什么啊?
1、“!= ” 是不等于的意思。2、“< ”是小于的意思 3、“< =” 是小于等于的意思。4、“> ”是大于的意思 5、“> =” 是大于等于的意思。c语言特点具体体现在以下方面:其一、广泛性。C 语言的运算范围的大小直接决定了其优劣性。C 语言中包含了34种运算符,因此运算范围要超出许多...

keil C编程中a>>=1是什么意思?
这里a应该是十六进制数,a>>=1表示a整体右移一位,这样,移位之后的a最高位用0填充,之前的a的最后一位去掉 例如a=1111 1111 a>>=1 后 a=0111 1111

在C语言中>>是什么意思? 如temp=~((temp>>4)|0xF0);
则a|b的意思是将a,b换做二进制,a=00011010,b=00001000 从低位到高位依次按位做或运算,a|b=00011110;>>是位右移,如果a>>2,则表示将a换做二进制,然后向右移动2位,左边补0。其规则是符号位被用来填充右移后左边空出来的位。向右移出的位被丢弃。此时a符号位为0,所以左边补0。~是按位取...

C语言中,两个大于号>>是什么意思?
C语言中两个大于号>>是右移位操作,就是把一个数的二进制形式的最右几位丢弃,最前面补原来最高位的数字(原来是0就补0;原来是1就补1)

java中的>>>和>>>=是什么意思
“>>>”运算符所作的是无符号的位移处理,它不会将所处理的值的最高位视为正负符号,所以作位移处理时,会直接在空出的高位填入0。当我们要作位移的原始值并非代表数值时(例如:表示颜色图素的值,最高位并非正负号),可能就会需要使用此种无符号的位移。比如:-10>>>2=1073741821 -10=1111 ...

C#中的&和|还有<<、>>是什么
C#中的&和|是逻辑运算符,<<、>>是双目运算符。&表示并且,需要所有条件都满足结果才是真;|表示或者,只要一个条件满足,结果就为真;<<是左移操作符,相当于除以2;>>是右移操作符,相当于乘以2。

相似回答