标签:argc 存储 res for 移位 out ret 进制 ++i
实例十五:十进制转成二进制
方法一:result = (n >> (31 - i)) & 1
原数依次从高位到低位,和数值‘1‘进行与操作,并不断输出结果。
方法二:result=a & (1 << i)
依次把数值‘1’从低位到高位,和原数进行与操作,并不断输出结果。
解释:
十进制数值在计算机中还是以二进制存储,要做的就是依次把存在内存的二进制显示出来。
原数 0000 1000 ---8
数值1 0000 0001 ---1
把原数的二进制数字一位一位地和1与。
代码:
int _tmain(int argc, _TCHAR* argv[])
{
int a, b;
cout<<"请输入要转换的数值:";
cin >> a;
//循环从高位开始移位
for (int i = 0; i < 32; ++i)
{
//31-i 代表移动的位数多少
b = (a >> (31 - i)) &1; //&1代表求当前最低位置的数据
cout << b;
}
system("pause");
return 0;
};
或者
int _tmain(int argc, _TCHAR* argv[])
{
int a, b;
cout << "请输入要转换的数值:";
cin >> a;
//循环把1从低位移位
for (int i = 31; i >=0; --i)
{
if (a &(1 << i))
cout << "1";
else
cout << "0";
}
system("pause");
return 0;
};
标签:argc 存储 res for 移位 out ret 进制 ++i
原文地址:http://www.cnblogs.com/gd-luojialin/p/6636055.html