编程论坛
注册
登录
编程论坛
→
C++教室
转换二进制的问题
张海锋
发布于 2013-01-23 14:30, 297 次点击
int main()
{
int a;
cin>>a;
for(int b=31;b>=0;b--)
cout<<((a>>b)&1);
cout<<endl;
return 0;
}
那句怎么理解啊
3 回复
#2
yuccn
2013-01-23 16:02
主要是右移b 位,和1 and操作
&1 主要是为了屏蔽最高位。
也就是说循环输出 a的二进制位的b位的数据
从第31位一直输出到底0位。
[
本帖最后由 yuccn 于 2013-1-23 16:03 编辑
]
#3
zklhp
2013-01-23 16:34
没头文件能编译么?
#4
waterstar
2013-01-23 16:50
>>在没有istream对象的时候表示移位操作符,
a >> b就是a往右移b位.
1