作者ckclark (大资佬)
看板C_and_CPP
标题Re: [问题] 如何取用二位元阵列的每一种状况
时间Mon Sep 12 19:36:02 2005
※ 引述《tititata ()》之铭言:
: 假设有一个阵列 u[7] = {0}; 阵列中每一个元素只能是 0 或 1
: 请问要怎麽写,才能够把从 [0 0 0 0 0 0 0 ] 到 [1 1 1 1 1 1 1]
: 每一种状况都拿来用呢?
: 我只有想到用 7 个 for 的方法... ^^;
: 谢谢~~
#include<stdio.h>
int main()
{
int u[7]={0};
int Ubound=1<<7;
int i,j;
for(i=0;i<Ubound;i++){
for(j=0;j<7;j++)
u[j]=(i&(1<<j))?1:0;
for(j=0;j<7;j++)
printf("%d,",u[j]);
puts("");
}
return 0;
}
用0跑到127应该是长这样(二进位)
0000000
0000001
0000010
0000011
...
1111110
1111111
然後用1<<j(也就是2的j次方)去侦测是否这个位元为0或1
不过出来的结果是反过来的.....
0000000
1000000
0100000
...
这个就自己调整吧...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.230.57.82
1F:→ ckclark:补充 (33&(1<<5))是32 而不是1 所以才用?:来判断 61.230.57.82 09/13