public static void Main()
foreach (var number in new int[] { byte.MaxValue, short.MaxValue, 0xFFFFFF, int.MaxValue})
Console.WriteLine("{0} byte(s) in {1}", GetBytes(number).Length, number);
public static byte[] GetBytes(int number)
bytes = new byte[] { (byte)number };
else if (number <= 0xFFFF)
bytes = BitConverter.GetBytes((short)number);
else if (number <= 0xFFFFFF)
var tmp = BitConverter.GetBytes(number);
Array.Copy(tmp, bytes, 3);
bytes = BitConverter.GetBytes(number);