【发布时间】:2015-02-15 04:39:12
【问题描述】:
我正在尝试翻转无符号 32 位整数的位并输出结果整数。以下是我的代码。
int numberOfTries = Convert.ToInt32(Console.ReadLine());
for (int i = 0; i < numberOfTries; i++)
{
uint input = Convert.ToUInt32(Console.ReadLine());
byte[] bInput = BitConverter.GetBytes(input);
if (BitConverter.IsLittleEndian)
Array.Reverse(bInput);
byte[] result = bInput;
BitArray b = new BitArray(new byte[] { result });
b.Not();
uint res = 0;
for (int i2 = 0; i2 != 32; i2++)
{
if (b[i2])
{
res |= (uint)(1 << i2);
}
}
Console.WriteLine(res);
}
但是,编译器在我声明 BitArray b 的那一行抱怨“无法将类型 'byte[]' 隐式转换为 'byte'”。我已将其声明为 byte[] 并且不知道为什么会引发此错误。
【问题讨论】:
标签: c# bit-manipulation byte bytearray implicit-conversion