void fun(int x){ char str[32];for(int i=30;i>=0;i--){ if(x%2)str[i]='1';elsestr[i]='0';x>>=1;if(!x)break;}str[31]='\0';cout<<&str[i]<<endl;WriteFile(&str[i]);
1 回答
回首忆惘然
TA贡献1847条经验 获得超11个赞
>>是右移运算符。
假设x=5,那么x的二进制为0101,x>>1表示x右移1位,即把最右边一位的1删掉,变为010,此时x=2;
仍然设x=5,二进制0101,x>>2表示x右移2位,把最右边两位的01去掉,变为01,此时x=1。
x>>=1等价于x=x>>1,跟x+=1等价于x=x+1是一个道理
- 1 回答
- 0 关注
- 1004 浏览
添加回答
举报
0/150
提交
取消