/* C# Programming Tips & Techniques by Charles Wright, Kris Jamsa Publisher: Osborne/McGraw-Hill (December 28, 2001) ISBN: 0072193794 */ namespace nsBitwise { using System; public class Bitwise123 { static public void Main () { ushort x = 15542; ushort y = 21845; Console.Write ("x = {0} = ", x); ShowBits (x); Console.Write (" y = {0} = ", y); ShowBits (y); ushort result = (ushort) (x & y); Console.Write (" x & y = "); ShowBits (result); Console.WriteLine (" = " + result); Console.Write (" x = {0} = ", x); ShowBits (x); Console.Write (" y = {0} = ", y); ShowBits (y); result = (ushort) (x | y); Console.Write (" x | y = "); ShowBits (result); Console.WriteLine (" = " + result); Console.Write (" x = {0} = ", x); ShowBits (x); Console.Write (" y = {0} = ", y); ShowBits (y); result = (ushort) (x ^ y); Console.Write (" x ^ y = "); ShowBits (result); Console.WriteLine (" = " + result); } static void ShowBits (ushort x) { int size; unsafe { size = sizeof (short) * 8; } for (int i = size - 1; i >= 0; --i) { Console.Write ((x >> i) & 1); if ((i % 4) == 0) Console.Write (' '); } } } }