位运算方法将正整型数据转换为二级制
BY 郭世龙
在一次写程序的时候,偶然得出了一个用位运算的方法将一个正整型数据转换为二级制的方法,试验的多次结果都是正确的,欢迎大家检验,有问题欢迎大家留言。输出的结果是从低位到高位。用这个方法还可以判断一个正整型的二进制每一位的值是1还是0。代码如下:
#include <iostream>
using namespace std;
int main (int argc, char *argv[])
{
int x =1;
cout<<"pleas input a unsigned integer x= ";
(cin>>x).get();
cout<<endl;
if(x<=0) return -1;
while( x )
{
cout<<(!(( x ^ (x-1))&(x-1))); //将整数转换成二进制输出(逆序)
x = x >> 1;
}
cout << endl;
cin.get();
return 1;
}