You can specify the minimum number of digits by appending the number of hex digits you want to the X format string. Since two hex digits correspond to one byte, your example with 4 bytes needs 8 hex digits. i.e. use i.ToString("X8").
If you want lower case letters, use x instead of X. For example 13.ToString("x8") maps to 0000000d.