-1
私はここでは新しいですが、私のComputing 2 HWに関するいくつかの質問がありました。我々はset_flag
、およびcheck_flag
を完了することになっており、その表示になっているビット演算子
void set_flag(int* flag_holder, int flag_position);
int check_flag(int flag_holder, int flag_position);
int main(int argc, char* argv[])
{
int flag_holder = 0;
int i;
set_flag(&flag_holder, 3);
set_flag(&flag_holder, 16);
set_flag(&flag_holder, 31);
for(i = 31; i >= 0; i--) {
printf("%d", check_flag(flag_holder, i));
if(i % 4 == 0)
printf(" ");
}
printf("\n");
return 0;
}
:
1000 0000 0000 0001 0000 0000 0000 1000
今、私は本当に理解するのに苦労してい
は、主な機能を考えますこの。全部で0に等しいとされるflag_holder
ですか?私の教授はビットごとに乗算を使用すると言っていました。しかし、私はちょうど32 '0の配列を実装し、3番目、16番目、および31番目の要素を0に設定できるように見えますか?私は乱雑な設定のために事前にお詫びし、実際にこれを読んで助けてくれた人に感謝します!
に影響を与えることなく、設定されていることである「私は散らかっセットのために事前に謝罪しますあなたは本当にすべてのコードを1行に書いていますか?いずれにしても、人々が実際にあなたを助けることができるように、私はそれを修正しました。 –
また、コードをすべて表示していないときに、あなたの問題が何であるかを知っている人はいますか? 'set_flag'と' check_flag'を実装している場合、それらが動作するかどうか知っていますか?これを修正してください。 –
"しかし、私はちょうど32 '0の"の配列を実装することができるように見えます。あなたはそうすることができますが、それは運動のポイントではありません。あなたは 'int'変数のビットを操作するつもりです。それで、あなたが私たちに何を望んでいるのかは分かりません。 – kaylum