码迷,mamicode.com
首页 > 其他好文 > 详细

十进制转成二进制

时间:2017-03-28 19:21:52      阅读:143      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!