文字列のbit表現

文字列のbit表現について

タグ bit 文字列


概要

  • 文字コード番目のbitを立てればよいという発想
  • and, xor, or, nandなどが高速に計算できる

##

import string

# string.printable -> '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'
ci = {c:i for i, c in enumerate(string.printable)}

def change_str_to_bit(s: str) -> int:
    r = 0
    for c in s:
        r |= (1 << ci[c])
    return r

print(format(change_str_to_bit("abc"), "b")) # 1110000000000

参考