台湾陈启祥:这里的<<操作符是什么意思?

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/02 17:08:26
#include <iostream.h>

void main()
{
int a;
cout <<"please input a number:\n";
cin >>a;

int c1 = a%3 ==0;
int c2 = a%5 ==0;
int c3 = a%7 ==0;

switch((c1<<2)+(c2<<1)+c3){
case 0: cout <<"不能被3,5,7整除.\n"; break;
case 1: cout <<"只能被7整除.\n"; break;
case 2: cout <<"只能被5整除.\n"; break;
case 3: cout <<"可以被5,7整除.\n"; break;
case 4: cout <<"只能被3整除.\n"; break;
case 5: cout <<"可以被3,7整除.\n"; break;
case 6: cout <<"可以被3,5整除.\n"; break;
case 7: cout <<"可以被3,5,7整除.\n"; break;
}
}
switch((c1<<2)+(c2<<1)+c3)
这里的<<操作符是什么意思?

switch((c1<<2)+(c2<<1)+c3)
这里的<<是左移,右边补0,打个比方:
1<<2 意思是1左移2位,按二进制来说就变成100,那么就是4了,再来1个:
3<<1意思就是3左移1位,按二进制就是11左移1位就是110那么就是6了

由于左移操作比乘要快的多,在一些性能优化上我们有时候用<<N来代替乘2的N次方,

输入
输出
cin >> 输入
cout << 输出
这样比较方便比C人性化了
也可以连用

cout <<“2131”<<“萨阿”

为了便于编程,有些方法调用和控制结构是以操作符的形式出现的。Ruby语言中有下列操作符。

高 ::
[]
+(单项) ! ~
**
-(单项)
* / %
+ -
<< >>
&
| ^
> >= < <=
<=> == === != =~ !~
&&
||
.. ...
?:(条件操作符)
=(+=, -= ... )
not
低 and or

是一个重载的操作符,是输出的意思
在iostream.h中有重载的定义
cin是标准输入,cout是标准输出
<<是输出 >>是输入
要注意这两个运算符cin和cout必须都在左边
"hello!">>cout就是错的!

cout <<"不能被3,5,7整除.\n 这里的<<是一个重载的符号,是把后面的字符插入输出流的意思.

switch((c1<<2)+(c2<<1)+c3) 里的<<是位左移操作符

知道输入用cin>>
输出用cout<<
就可以了,这个知道用就是了。