・byte a = 2, b = 3;
Console.WriteLine(a & b);
が2なのは、1&1が1、0&1が0なのを、2と3に置き換えてるだけですか?値が同じじゃないから0&1の0に対応する2が出力されたってことですか?
「1&1が1、0&1が0なのを、2と3に置き換えてる」のではありません。
変数aの値2は2進数10、変数bの値3は2進数11 ですので、2項&演算子によるビット論理積演算では、
下から1桁目どうしの 0 & 1 で0が、下から2桁目どうしの 1 & 1 で1が得られることから、
2進数10 & 2進数11 は 2進数10 になります。
2進数10 & 2進数11 2進数10
この値を Console.WriteLine(a & b) で出力すると結果の2進数10が10進数に変換されて
「2」が表示されるわけです。
・講義が進むとともに、覚えることが少しずつ多くなっている気がします。
最近は新しいことを学ぶと、前に学んだことを忘れたりします。
もちろん復習も大事ですが、現時点でどのように一人で勉強すれば良いのか、
何か良いアドバイスがあれば教えていただけると助かります。
個人学習としては、テキストの読み直しなども有効ですが、
ご自宅にPCをお持ちでしたらお勧めしたいのは「フリーアレンジ演習」です。
講義内で提示されたアレンジ演習を「エラーが出ても構わずに」更にアレンジしてみる練習です。
例えば、int型の変数を用いているサンプルプログラムにおいて、int型以外の全ての型にして、
初期化や代入のしかたも変えながら、結果を確認したり、
いずれかの行を削除したり、コメントアウトして、どういう文法エラーになるか(ならないか)を、
試すと、プログラムへの理解度が上がります。
お試しください。
・授業の進め方についてなのですが、特にこの帰る前の最後のアレンジ演習の時に、後からアレンジ内容を追加するのは控えていただきたいです(そのまま提出しそうになったので)。
提出課題の内容が薄かったので、充実度を上げるために、
少し足したつもりでしたが、お気に召さなかったようで、失礼いたしました。
申し訳ありません。