C# 将整数列表(1和0)保存到字节,并将数字写入文件
我有一个整数列表var listOfBits=新列表;它由整数1000 1100 0000 1110 0100…组成。。。。这些位表示二进制数。现在我需要把号码写进一个文件。但我有点困了。我是这么想的:C# 将整数列表(1和0)保存到字节,并将数字写入文件,c#,byte,C#,Byte,我有一个整数列表var listOfBits=新列表;它由整数1000 1100 0000 1110 0100…组成。。。。这些位表示二进制数。现在我需要把号码写进一个文件。但我有点困了。我是这么想的: void writeFile(List<int> listOfBits) { for (int i = 0; i < listOfBits.Count; i += 8) { byte
void writeFile(List<int> listOfBits)
{
for (int i = 0; i < listOfBits.Count; i += 8)
{
byte exitByte= 0;
for(int j=0; j < 8; j++)
{
if (listOfBits[i + j] == 1)
{
//some kind of right shift maybe?
}
}
//write exitByte to file...
}
}
您必须使用左移:
exitByte = (exitByte << 1) + 1;
请注意,这假设最高有效位位于第一位。如果不是这样,则反转内循环,但仍使用左移
由于在1和0两种情况下都必须进行移位,因此更容易如下所示:
exitByte <<= 1; // Shift left by 1 position, i.e., multiply by 2.
if (listOfBits[i + j] == 1)
{
exitByte++; // Add one.
}
exitByte <<= 1; // Shift left by 1 position, i.e., multiply by 2.
if (listOfBits[i + j] == 1)
{
exitByte++; // Add one.
}