LoginSignup
0
0

More than 5 years have passed since last update.

swift4でビットを0詰めして表示する

Posted at

swiftでビットを出力するには、

var bit: Int8 = 0b00001100
print(String(bit, radix: 2))

みたいな感じで実装すると思いますが、上記のコードだと、

1100

と出力されます。フラグ管理をしていてログを表示する場合、

1100
100
100100

先頭の0は表示されないため、このように桁数がバラバラになって出力されることがあります。
これがちょっと嫌だったので、先頭を0詰めして表示するコードを作りました。

func toBinary(value: Int8) -> String {
    let str = String(value, radix: 2)
    let padd = String(repeating: Character("0"), count: (MemoryLayout.size(ofValue: value) * 8 - str.count))
    return padd + str
}

このサイトのコードを参考にしました。そのままだと動かなかったので、改良しました。

これで、先頭が0詰めされたビットが出力されます。

00001100
00000100
00100100

16ビット、32ビット、64ビットで使いたい場合は、引数の型をそれぞれInt16、Int32、Int64に変えてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0