关于C++ 移位操作符,为什么要在后面加一个等号?

如果不加等好的话,就跟没移位之前是一样的,比如说这个程序
unsigned int a = 7;
a<<=2; //这里为什么要有等号?
printf("%d\n",a);

a<<=2;
的意思就是
a = a << 2;
将a左移2位后的值赋给a;

如果没有=号,
那么就是 a << 2;
这个表达式什么也没有做.因为a左移2位的值并没有用到其他地方,也没有赋值给其他变量!

如果
a += b;
就是a = a + b;
C++规则,运算符后面加等号.
也可以是其他双目运算符,如*,/,>>等等!
温馨提示:内容为网友见解,仅供参考
无其他回答

C++中2个等于号==代表什么
代表左操作数等于右操作数,一般用来作判断的条件的,如a等于b,表达为a==b,而“=”就是赋值的意思

一个等号和两个等号有什么区别吗?
一个等号代表的含义是赋值,将某一数值赋给某个变量,比如a=3,将3这个数值赋予给a。两个等号是判断是否相等,返回True或False,比如1==1。他们是相等的,那么就返回true。1==2,他们是不相等的,那么就返回false。

在c++中变量后只有一个减号是什么意思
那不是“只有一个减号”,而是复合操作符-=。它的意思是“-号左边的变量值减去等号右边的数值并将结果赋给-号左边的变量”。如sec-=60就是sec=sec-60的意思。

在C语言中<<是什么意思?
例:C语言中左移<<表示乘以2,右移>>表示除以2,这是由计算机工作原理导致的!但是要是7,二进制数为0111,右移一位得3.5,但是右移之后二进制数变成0011,是3。不一样啊,怎模解释呢??答:移位操作符的两个操作数必须是整型的。整个移位表达式的值的类型也是整型的,而且,左移位操作符与右...

if(++c1==1)什么意思?
①“++”是自加1。有前缀(如++i,意义:先自加1,然后应用i的值)和后缀(如i++,意义:先应用i的值,然后i再自加1)。②“==”是逻辑运算符,判断等式两边的值是否相等。若相当,则值为1;若不等,则值为0。③“||”也是逻辑运算符——或,注意:如果运算符前面的值为真,后面的表达式...

JAVA位运算符
Java中增加了一种“无符号”右移位操作符(>>>),它使用了“零扩展”:无论正负,都在高位插入0。这一操作符是C或C++没有的。 如果对char、byte或者short类型的数值进行移位处理,那么在移位进行之前,它们会自动转换为int,并且得到的结果也是一个int类型的值。而右侧操作数,作为真正移位的位数,只有其二进制表示中...

关于python一个项目要多少行代码格式的信息
1、在二元运算符两边各空一格,算术操作符两边的空格可灵活使用,但两侧务必要保持一致2、不要在逗号、分号、冒号前面加空格,但应该在它们后面加(除非在行尾)3、函数的参数列表中,逗号之后要有空格4、函数的参数列表中,默认值等号两边不要添加空格5、左括号之后,右括号之前不要加添加空格6、参数列表, 索引或切片的...

C#与VB.net有什么不同呀?
1.语法上的差异例如循环的写法VB.NETFor I = 1 To 10‘ for loopNext IC#For (i=1;i<11;i++) {\/\/ for loop}另外Visual Basic 对大小写不敏感,而C#是大小写敏感的。2.C# 具有但 Visual Basic 不具有的特性指针, 移位操作符, 内嵌的文档(XML)重载操作符3.Visual Basic具有但 C# 不具有的特性更...

关于python一个项目要多少行代码格式的信息
1、在二元运算符两边各空一格,算术操作符两边的空格可灵活使用,但两侧务必要保持一致2、不要在逗号、分号、冒号前面加空格,但应该在它们后面加(除非在行尾)3、函数的参数列表中,逗号之后要有空格4、函数的参数列表中,默认值等号两边不要添加空格5、左括号之后,右括号之前不要加添加空格6、参数列表,索引或切片的...

相似回答