看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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
ckclark:補充 (33&(1<<5))是32 而不是1 所以才用?:來判斷 61.230.57.82 09/13