/ /同じ桁数を保持するようにフォーマットされたSwiftで16進数を文字列に変換する-swift、string、int、hex

swiftで16進数を文字列に変換すると、同じ桁数(swift、string、int、hex)が維持されます

配列内の16進数値から文字列を作成しようとしていますが、配列内の16進数がゼロで始まる場合は、結果の文字列でも消えます。

私が使う String(value:radix:uppercase) 文字列を作成します。


例:

これが配列です: [0x13245678, 0x12345678, 0x12345678, 0x12345678].
これは私に文字列を与えます: 12345678123456781234567812345678 (32文字)

しかし、次の配列: [0x02345678, 0x12345678, 0x02345678, 0x12345678] (2つを交換したことに注意してください 1「ゼロ付き」。
私に文字列を与えます: 234567812345678234567812345678 (30文字)


ゼロが削除される理由がわかりません。 正しい;ゼロが存在する場合、ゼロを保持するようにフォーマットするにはどうすればよいですか?

回答:

回答№1の場合は3

数字 0x01234567 本当にちょうど 0x1234567。数字リテラルの先頭のゼロは何も意味しません(8進数リテラルに先頭の0を使用している場合を除く)。

使用する代わりに String(value:radix:uppercase)、 つかいます String(format:).

let num = 0x1234567
let str = String(format: "%08X", num)

フォーマットの説明:

  • 0 必要に応じて文字列の左端にゼロを埋め込むことを意味します。
  • 8 結果を8文字にすることを意味します
  • X 数字を大文字の16進数に変換することを意味します。つかいます x 小文字の16進数が必要な場合。