Получите 4-байтовую шестнадцатеричную строку с помощью stringWithFormat

До сих пор у меня есть этот код:

NSString *hex = [NSString stringWithFormat:@"%lX", crc32Result];

Который форматирует значение int в шестнадцатеричное (строковое) значение.

Но теперь я хотел бы всегда получать 4-байтовый шестнадцатеричный код с «stringWithFormat». Я имею в виду, что когда результат, например: «DFF241», я бы хотел, чтобы вместо этого выводился «00DFF241». Если это «F241», я бы хотел, чтобы вывод был «0000F241».

Возможно ли это с помощью «stringWithFormat»?


person fraxool    schedule 31.03.2017    source источник


Ответы (1)


Да, это:

NSString *hex = [NSString stringWithFormat:@"%08lX", crc32Result];

О флаге 0:

Для спецификаторов преобразования d, i, o, u, x, X, a, A, e, E, f, F, g и G ведущие нули (после любого указания знака или основания) используются для заполнения поля. ширина; заполнение пробелами не выполняется.

person vadian    schedule 31.03.2017