Convert int to hex with leading zeros

How to convert int (4 bytes) to hex ("XX XX XX XX") without cycles?

for example:

i=13 hex="00 00 00 0D"

i.ToString("X") returns "D", but I need a 4-bytes hex value.


Solution 1:

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.

Solution 2:

try this:

int innum = 123;
string Hex = innum .ToString("X");  // gives you hex "7B"
string Hex = innum .ToString("X8");  // gives you hex 8 digit "0000007B"