对于一个二进制数据,可以使用位运算来判断哪几位数据为1。

以下是一个示例代码:

static void Main(string[] args)
{
    string binaryData = "01011101";
    int decimalData = Convert.ToInt32(binaryData, 2);

    List<int> positions = GetSetBitPositions(decimalData);

    Console.WriteLine("Set bit positions:");
    foreach (int position in positions)
    {
        Console.WriteLine(position);
    }
}

static List<int> GetSetBitPositions(int data)
{
    List<int> positions = new List<int>();

    int position = 0;
    while (data > 0)
    {
        if ((data & 1) == 1)
        {
            positions.Add(position);
        }

        data >>= 1;
        position++;
    }

    return positions;
}

在上述代码中,我们首先将二进制字符串转换为十进制整数。然后,通过使用位运算和位移操作,可以逐位检查整数中的每一位是否为1,并将其位置添加到一个列表中。最后,我们打印出这些位置。

对于输入的二进制数据"01011101",输出将是:

Set bit positions:
0
2
3
4
6

这表示该二进制数据中的第0、2、3、4和6位为1

C#判断二进制数据中哪几位数据为1 如 01011101

原文地址: https://www.cveoy.top/t/topic/iehm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录