119

I need to convert an int to hex string.

When converting 1400 => 578 using ToString("X") or ToString("X2") but I need it like 0578.

Can anyone provide me the IFormatter to ensure that the string is 4 chars long?

Micha Wiedenmann
  • 18,825
  • 20
  • 87
  • 132
pedrodbsa
  • 1,301
  • 3
  • 10
  • 12
  • 2
    Look at numerics formats [here](http://msdn.microsoft.com/en-us/library/dwhawy9k(VS.71).aspx). – Ariel Jan 14 '11 at 11:25

5 Answers5

183

Use ToString("X4").

The 4 means that the string will be 4 digits long.

Reference: The Hexadecimal ("X") Format Specifier on MSDN.

Sebastian Paaske Tørholm
  • 47,464
  • 10
  • 95
  • 116
18

Try the following:

ToString("X4")

See The X format specifier on MSDN.

Oded
  • 477,625
  • 97
  • 867
  • 998
14

Try C# string interpolation introduced in C# 6:

var id = 100;
var hexid = $"0x{id:X}";

hexid value:

"0x64"
0x777
  • 760
  • 6
  • 14
3

Previous answer is not good for negative numbers. Use a short type instead of int

        short iValue = -1400;
        string sResult = iValue.ToString("X2");
        Console.WriteLine("Value={0} Result={1}", iValue, sResult);

Now result is FA88

0

Convert int to hex string

int num = 1366;

string bcdNum = num.ToString("X");