この記事では、Pythonを使って2進数の文字列を任意の桁数で0埋めする方法を、サンプルコードを交えて解説していきます。
Pythonでの2進数の文字列の0埋め方法
Pythonで2進数の文字列を任意の桁数で0埋めする方法には、いくつかの方法があります。
この記事では、 str.format()
、 str.zfill()
、f-string
、そして bin()
と format()
の組み合わせを使った方法を紹介します。
str.format()
を使った方法
format()
の基本
str.format()
は、文字列の中にある波括弧{}
に値を埋め込むためのメソッドです。
以下の例では、{}
の部分に10
が埋め込まれています。
text = "私は{}歳です。"
age = 10
result = text.format(age)
print(result) # 私は10歳です。
format()
での0埋め
str.format()
を使って2進数の文字列を0埋めするには、波括弧{}
の中に0
と埋めたい桁数を記述します。
binary_number = "101"
result = "{:05}".format(binary_number)
print(result) # 10100
これで0埋めできましたが、「違う、そうじゃない」と思っているはずです。
左詰めで0埋めしたい場合は{:>05}
のように>
を追加します。
binary_number = "101"
result = "{:>05}".format(binary_number)
print(result) # 00101
str.zfill()
を使った方法
zfill()
の基本
str.zfill()
は、文字列の左側に0
を指定した桁数まで埋めるメソッドです。
以下の例では、"5"
の左側に0
を2桁で埋めています。
number = "5"
result = number.zfill(3)
print(result) # 005
zfill()
での0埋め
str.zfill()
を使って2進数の文字列を0埋めするには、以下のようにします。
binary_number = "101"
result = binary_number.zfill(5)
print(result) # 00101
f-stringを使った方法
f-stringの基本
f-stringは、Python 3.6以降で利用できる文字列の埋め込み機能です。
文字列の先頭にf
またはF
を付け、波括弧{}
の中に埋め込みたい値を記述します。
以下の例では、{}
の部分に10
が埋め込まれています。
age = 10
result = f"私は{age}歳です。"
print(result) # 私は10歳です。
f-stringでの0埋め
f-stringを使って2進数の文字列を0埋めするには、波括弧{}
の中に0
と埋めたい桁数を記述します。
以下の例では、{}
の部分に0
を3桁で埋めた5
が埋め込まれています。
binary_number = "101"
result = f"{binary_number:>05}"
print(result) # 00101
format()
関数と同じように>
をつけて{数値:>05}
のように記述しないと左詰めされないので注意してください。
これらの方法を使って、Pythonで2進数の文字列を任意の桁数で0埋めすることができます。
適切な方法を選んで、プログラムに取り入れてみてください。
その他の応用例
これまでに、Pythonで2進数の文字列を0埋めする方法をいくつか紹介しました。
しかし、これらの方法は2進数だけでなく、8進数や16進数の文字列にも応用することができます。
また、ビット演算と0埋めを組み合わせることで、より高度な処理が可能になります。
この章では、それらの応用例を紹介します。
8進数や16進数での0埋め
8進数や16進数の文字列も、2進数と同様に0埋めすることができます。
以下に、それぞれの方法を示します。
8進数での0埋め
# 8進数の数値を文字列に変換
oct_num = oct(15)[2:] # '17'
# 0埋め
oct_num_padded = oct_num.zfill(4) # '0017'
print(oct_num_padded) # 0017
16進数での0埋め
# 16進数の数値を文字列に変換
hex_num = hex(255)[2:] # 'ff'
# 0埋め
hex_num_padded = hex_num.zfill(4) # '00ff'
print(hex_num_padded) # 00ff
これらの方法は、 str.format()
やf-string
でも同様に適用できます。
これらの方法は、データの圧縮や暗号化など、さまざまな用途で活用できるので、0埋めした2進数文字列を使った方がいいケースでは、適宜0埋め処理を行うといいでしょう。