/*
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 ("\r\ny = {0} = ", y);
ShowBits (y);
ushort result = (ushort) (x & y);
Console.Write ("\r\nx & y = ");
ShowBits (result);
Console.WriteLine (" = " + result);
Console.Write ("\r\nx = {0} = ", x);
ShowBits (x);
Console.Write ("\r\ny = {0} = ", y);
ShowBits (y);
result = (ushort) (x | y);
Console.Write ("\r\nx | y = ");
ShowBits (result);
Console.WriteLine (" = " + result);
Console.Write ("\r\nx = {0} = ", x);
ShowBits (x);
Console.Write ("\r\ny = {0} = ", y);
ShowBits (y);
result = (ushort) (x ^ y);
Console.Write ("\r\nx ^ 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 (' ');
}
}
}
}
|