注册 登录
编程论坛 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
yuccn2013-01-23 16:02

主要是右移b 位,和1 and操作

&1 主要是为了屏蔽最高位。

也就是说循环输出 a的二进制位的b位的数据
从第31位一直输出到底0位。


[ 本帖最后由 yuccn 于 2013-1-23 16:03 编辑 ]
#3
zklhp2013-01-23 16:34
没头文件能编译么?
#4
waterstar2013-01-23 16:50
>>在没有istream对象的时候表示移位操作符,
a >> b就是a往右移b位.
1