C Lampo
C Lampo

Reputation: 81

How do I convert integer to 4-digit hex string?

I need to convert a 2-byte signed integer into a string of it's hex equivalent, but I need the string to be 4 characters. I've tried the Hex() function but when I convert 0 or say, 10, the result is 0 or A. I need the result to be 0000 or 000A. Any tips or advice?

Upvotes: 4

Views: 16314

Answers (5)

arcadeprecinct
arcadeprecinct

Reputation: 3777

Since you also tagged the question VBA, here is a VBA way to do it

Right("0000" & Hex(i), 4)

Upvotes: 3

dbasnett
dbasnett

Reputation: 11773

Use

    Dim i As Integer = 10
    Dim hexS As String = i.ToString("X4")

Upvotes: 2

Steve
Steve

Reputation: 216363

It is just

 Dim hexS As String = i.ToString("X4")

This is well explained in the The Hexadecimal (X) Format specifier.
The 4 after the X specifies how many chars you want in the output and if there are not enough chars, the missing ones are supplied as an appropriate number of "0".

Upvotes: 8

Slai
Slai

Reputation: 22896

The VB way

Format(i, "X4")

or

Hex(i).PadLeft(4, "0"c)

In Visual Studio 2015:

s = $"{i:X4}"

Upvotes: 0

Martin
Martin

Reputation: 16453

If you are deadset on using Hex as opposed to string formatting then you could use:

Dim Number As Integer
Dim Output As String

Number = 10
Output = ("000" & Hex(Number))
Output = Output.Substring(Output.Length - 4, 4)
Console.WriteLine(Output)

Alternatively make use of string formatting for numbers as so:

Output = Number.ToString("X4")
Console.WriteLine(Output)

The output in both cases with be 000A.

Upvotes: 1

Related Questions