0

こんにちは、C# でバイトを使用するのは初めてです。

0xxxxxxx と 1xxxxxxx の形式に基づいてバイトを比較したいとします。比較のためにその最初の値を取得し、同時にそれを前面から削除するにはどうすればよいですか?

どんな助けでも大歓迎です。

4

3 に答える 3

0

これにより、2 バイトがチェックされ、各ビットが比較されます。ビットが同じ場合、そのビットをクリアします。

     static void Main(string[] args)
    {
        byte byte1 = 255;
        byte byte2 = 255;

        for (var i = 0; i <= 7; i++)
        {
            if ((byte1 & (1 << i)) == (byte2 & (1 << i)))
            {
                // position i in byte1 is the same as position i in byte2

                // clear bit that is the same in both numbers
                ClearBit(ref byte1, i);
                ClearBit(ref byte2, i);
            }
            else
            {
                // if not the same.. do something here
            }

            Console.WriteLine(Convert.ToString(byte1, 2).PadLeft(8, '0'));
        }
        Console.ReadKey();
    }

    private static void ClearBit(ref byte value, int position)
    {
        value = (byte)(value & ~(1 << position));
    }
}
于 2013-09-06T20:25:48.813 に答える