首页 新闻 会员 周边 捐助

二进制怎么 顺序不对

0
悬赏园豆:10 [待解决问题]

#include <iostream>

using namespace std;

#define N  20 int b[N],t,n;

int main(int argc, char *argv[])

{    

int x,i,t;  

   cin>>n;

    for (x=0;x<=(1<<n)-1;x++)   

  {      

   t=x;   

      for (i=0;i<n;i++)

        {   b[i]=t%2 ;t/=2; }

 

        for (i=0;i<n;i++)  

           cout<<b[i]<<" ";

        cout<<endl;

 

    }

 

    return 0; }

2014acm的主页 2014acm | 初学一级 | 园豆:192
提问于:2014-08-06 14:57
< >
分享
所有回答(2)
0

转换二进制的时候,需要倒序输出的。

幻天芒 | 园豆:37207 (高人七级) | 2014-08-06 15:11
0

如幻天芒所说,是倒序的。记得c里也能对数组进行reverse吧?调用下就OK了。

此外,把你的输出序列改成:

for (i=n;i>0;i--)  

           cout<<b[i-1]<<" ";

也能达到目的。

 

另外,你这段程序让人费解,不知道你要做什么,代码的意思以及逻辑有点混乱。

519740105 | 园豆:5810 (大侠五级) | 2014-08-07 09:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册