Johnson
Johnson

Reputation: 718

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.

Upvotes: 57

Views: 65951

Answers (2)

KF2
KF2

Reputation: 10143

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"

Upvotes: 17

CodesInChaos
CodesInChaos

Reputation: 108790

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.

Upvotes: 101

Related Questions