public static void Main()
var list = new[]{1, 2, 3}.Select(x=>new Number(x));
Console.WriteLine(string.Join("\n", list.Select(x=> string.Format("Number: {0}\n\tLittle Endian Form:\t {1}\n\tBig Endian Form:\t\t{2}\n\tWhich looks like:\t {3}", x.Num, Number.BinaryFormat(x.LittleEndian), Number.BinaryFormat(x.BigEndian), Convert.ToInt64(x.BigEndian, 2)))));
static Func<int, string> toBinary = new Func<int, string>(x=>Convert.ToString(x,2).PadLeft(Pad, '0'));
public static int Pad {get;set;}
public string LittleEndian{get{return toBinary(Num);}}
public string BigEndian{get{return littleEndian();}}
char[][] bits = new char[Pad/8][];
for(int i=0;i<bits.Count();i++){
for(var i=0;i<LittleEndian.Count();i++){
bits[i/8][i%8] = LittleEndian[i];
return string.Concat(bits.Reverse().SelectMany(x=>x));
public static string BinaryFormat(string orig){
var sb = new StringBuilder();
for(var i=0;i<orig.Count();i++){
return sb.ToString().Trim();