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に変えてください。