回答編集履歴

1 ちょっと変更

hayataka2049

hayataka2049 score 19277

2018/06/26 21:05  投稿

1文字8bitで表現するのではなく、0-25をA-Zに振るということな気がします。
1文字を8bit(1byte)で表現することには関係なく、単に0-25をA-Zに振るということな気がします。
こんな感じかな。
```python
import string
d = {i:v for i,v in enumerate(string.ascii_uppercase)}
inv_d = {v:k for k,v in d.items()}
val = 1234567
print(val)
# 変換
result = []
tmp = val
for _ in range(7):
   result.append(d[tmp%26])
   tmp //= 26
print("".join(reversed(result)))
# 逆変換
total = 0
for i,c in enumerate(result):
   total += inv_d[c] * (26**i)
print(total)
""" =>
1234567
AACSGHJ
1234567
"""
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る