首页 > 代码库 > 十进制转成二进制

十进制转成二进制

实例十五:十进制转成二进制

方法一: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;
};

 

十进制转成二进制