文字列の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