Show bits

image_pdfimage_print

   

/*
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 (' ');
            }
        }
    }
}