08/08/12 18:19:37
>>177
元の話、全然見てないが、、、
環境によるけど通常、'A' は65だ。
s[i]=1+'A' なら、 s[i] = 1 + 65 つまり 66 を代入。
(文字コード66はすなわち 'B'だ)
for(j=0;j<6;++j)
if(!(flag&1<<j)){
この部分は自分で展開してみればいい
j が 0のとき
flag & 1 << 0 → flag & 00000001
1のとき
flag & 1 << 1 → flag & 00000010
以下
flag & 1 << 2 → flag & 00000100
flag & 1 << 3 → flag & 00001000
& の結果、flagの該当位置が1じゃなかったら結果が0になるだろ
0は偽だから、!で反転して真になる。
つまり左から j 番目のビットが0の場合にif文以下が実行される。