从0到2^5-1遍历,把数字转成对应的二进制显示就可以了。
代码如下:
#include <stdio.h>
//10进制转radius进制
void trans(int n,int radius,char buf[])
{
int i = 0;
int t,j;
char ch;
while(n)
{
t = n%radius;
if(t >= 10)
buf[i] = 'A' + t-10;
else
buf[i] = '0' + t;
i++;
n/=radius;
}
buf[i] = 0;
//逆序
for (j=0,t=i-1;j<t;j++,t--)
{
ch = buf[j];
buf[j] = buf[t];
buf[t] = ch;
}
}
int main()
{
int i;
char buf[8]={0};
for (i=0;i<32;i++)
{
trans(i,2,buf);
printf("%05s\n",buf);
}
return 0;
}
#include <iostream>
using namespace std;
int main()
{
for (int i=0; i<32; ++i)
{
for (int j=0; j < 5; ++j)//输出五位
{
int mask = 1 << (4 - j);//计算掩码
//掩码和数值i相与,结果为真则输出1,结果为假则输出0
cout << ((i & mask) ? "1" : "0");
}
cout << endl;//换行
}
int i = 0;
cin >> i;
return 0;
}