pythonバイナリデータを扱う①

pythonでバイナリデータを2進数にした後、いろいろ操作する方法をまとめてみた。 いろいろ操作した後にバイナリデータや整数に変換する方針にしている。正しいのかな?

import sys

def main():
    binary_data = b'\x08'
    # binary_data = b'\x48\x65\x6c\x6c\x6f'
    data = int.from_bytes(binary_data, sys.byteorder)
    binary_num = to_binary_number(data,10)
    binary_num = bit_slice(binary_num,4,2)
    print (binary_num)
    binary_num += create_0(5)
    print (binary_num)

def to_binary_number(data,bit_width):
    binary_number = format(data,"0"+str(bit_width)+"b")
    return binary_number

def create_0(num):
    return str("0"*int(num))

def bit_slice(binary_num,msb,lsb):
    data_len = len(binary_num)
    if data_len < msb+1:
        print ("[    ERROR    ] msb is bigger than binary_num width")
        return -1
    if msb < lsb:
        print ("[    ERROR    ] msb is less than lsb")
        return -1
    first_pos = data_len - msb - 1
    last_pos = data_len - lsb - 1
    return binary_num[first_pos:last_pos+1]

if __name__ == "__main__":
    main()