エラーが発生しています。私はすべてのタイプの型キャストを試みましたが、助けはありませんでした。ここで何が起こっているのか教えてください。ビットシフト中のコンパイルエラー "暗黙的に 'int'型を 'byte'に変換できません"
Error: Cannot implicitly convert type 'int' to 'byte'. An explicit conversion exists (are you missing a cast?)
byte[] bitVector = new byte[UInt32.MaxValue/8];
//bitVector[((UInt32)x/8)] |= (1 << ((int)(x % 8))); ERROR
//bitVector[((UInt32)x/8)] |= (1 << Convert.ToByte(x % 8)); ERROR
bitVector[((UInt32)x/8)] |= (1 << 5); //No Error
bitVector配列の定義は何ですか –
@名言Kamboj私の質問を編集しました。それはByte [] – user3604557
ほとんどの複製 - http://stackoverflow.com/questions/4123788/whats-wrong-with-this-expression-cannot-implicitly-convert-type-int-to-byte、正確に見つけることシフト演算子によって受け入れられ/返される型について説明します(ヒント:byteはそれらのどれでもありません)。コンパイル時定数の規則は異なっており、(サンプルの最後の行については)他の複製によってもカバーされることに注意してください。 –