我得到以下错误。我试过所有类型的类型转换但没有帮助。请让我知道这里发生了什么。
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
答案 0 :(得分:1)
以下应提供帮助
bitVector[((UInt32)x/8)] |= (byte)(1 << x % 8)
bit
操作的结果为integer
,您尝试将其填入byte
类型,因此需要明确的类型转换
答案 1 :(得分:0)
你需要使用这个
bitVector [((UInt32)x / 8)] | =((byte)1&lt;&lt;(1%8));
这两个给你带来麻烦的是这样做的,因为你试图将一个int(字节移位的结果)分配给一个字节数组,通过强制你转移到一个你将得到预期的字节的常量结果