C# 判断二进制数据中哪几位为1 - 代码示例与解释
对于一个二进制数据,可以使用位运算来判断哪几位数据为1。\n\n以下是一个示例代码:\n\ncsharp\nstatic void Main(string[] args)\n{\n string binaryData = "01011101";\n int decimalData = Convert.ToInt32(binaryData, 2);\n\n List<int> positions = GetSetBitPositions(decimalData);\n\n Console.WriteLine("Set bit positions:");\n foreach (int position in positions)\n {\n Console.WriteLine(position);\n }\n}\n\nstatic List<int> GetSetBitPositions(int data)\n{\n List<int> positions = new List<int>();\n\n int position = 0;\n while (data > 0)\n {\n if ((data & 1) == 1)\n {\n positions.Add(position);\n }\n\n data >>= 1;\n position++;\n }\n\n return positions;\n}\n\n\n在上述代码中,我们首先将二进制字符串转换为十进制整数。然后,通过使用位运算和位移操作,可以逐位检查整数中的每一位是否为1,并将其位置添加到一个列表中。最后,我们打印出这些位置。\n\n对于输入的二进制数据"01011101",输出将是:\n\n\nSet bit positions:\n0\n2\n3\n4\n6\n\n\n这表示该二进制数据中的第0、2、3、4和6位为1。
原文地址: https://www.cveoy.top/t/topic/pWRo 著作权归作者所有。请勿转载和采集!