Подтвердить что ты не робот

Как преобразовать целое число в фиксированную длину шестнадцатеричной строки в С#?

У меня есть целочисленная переменная с максимальным значением 9999.

Я могу преобразовать строку фиксированной длины (4 символа):

value.ToString("0000");

и я могу преобразовать его в hex:

value.ToString("X");

Я хочу преобразовать его в шестнадцатеричную строку из четырех символов (дополненную 0 слева, если значение преобразуется в шестнадцатеричное значение менее четырех цифр). Я попробовал следующее, которое не сработало.

value.ToString("0000:X");

ОК, я могу проверить длину шестнадцатеричной строки и оставить левую с нулями.

Но есть ли простой способ?

4b9b3361

Ответ 1

Используйте число после спецификатора формата X, чтобы указать левое заполнение: value.ToString("X4")

Ответ 2

String.Format( "{0:X2}", intValue)

Ответ 3

Вот еще один метод, Вы можете определить функцию и передать ей 2 значения, один - фактическое число, а второе - максимальная длина для исправления. то есть.

public string FixZero(string str, int maxlength)
{
    string zero = "000000000000000000000000000000000000000";
    int length = str.Length;
    int diff = maxlength- length;
    string z = zero.Substring(1, diff);
    z = z + str;
    return z;
}

вам нужны целые числа в формате 0012, FixZero ( "12", 4) или для 0001234, FixZero ( "1234", 7)