C#使用按位运算比较字节

时间:2012-05-13 19:27:05

标签: c# compare bytearray byte bitwise-operators

我正在尝试在C#中编写一个方法,它将通过比较数组中的每个字节来返回两个字节数组之间的差异,如果它与第一个字节不同则返回第二个字节。到目前为止我有这个:

        byte[] b1 = 111;
        byte[] b2 = 105;

        int j = input.Length;

        byte[] differenceByte = new byte[j];

        int diffIndex = 0;

        for (int i = 0; i < j; i++)
        {
            if (originalByte[i] != comparisonByte[i])
                differenceByte[diffIndex++] = comparisonByte[i];
        }

但我希望找到一种方法来替换if语句,将第一个字节与第二个字节进行比较,并使用一些按位巫术魔法......有没有办法做到这一点?

第二个问题是,是否有其他方法可以优化此代码,以便尽可能快地运行?

我最终希望使用此代码通过将字符串转换为字节数组来比较两个字符串,因此如果在这方面我应该知道某些内容,那么这也会有所帮助。

1 个答案:

答案 0 :(得分:1)

平等操作员对比特进行操作 没有任何按位巫术魔法可以改善平等操作员。