Pythonで文字列と2進数の相互変換

日常的に2進数で会話することが多々ありますよね。
そんなときに我々が使う日本語から2進数に変換するための方法を紹介します。

プログラム

Pythonで書いてあるこのプログラムを実行すれば簡単に変換することができます。

文字列から2進数等のコード

fromStr

print("Input string")
string = input()
listStr = [c for c in string]
print("To hex")
for item in listStr:
    print(hex(ord(item)), end=" ")
print("\nTo dec")
for item in listStr:
    print(int(ord(item)), end=" ")
print("\nTo bin")
for item in listStr:
    print(bin(ord(item)), end=" ")

print()

実行

実行すると入力待ちとなり、適当な文字列を入力すると2,10,16進数のコードとして出力されます。

実行

Input string
こんにちは
To hex
0x3053 0x3093 0x306b 0x3061 0x306f
To dec
12371 12435 12395 12385 12399
To bin
0b11000001010011 0b11000010010011 0b11000001101011 0b11000001100001 0b11000001101111

2進数等のコードから文字列

fromCode

print("Input code")
string = input()
listStr = string.split(" ")

print("String")
try:
    for item in listStr:
        print(chr(int(item, 2)), end="")
except:
    pass

try:
    for item in listStr:
        print(chr(int(item, 10)), end="")
except:
    pass

try:
    for item in listStr:
        print(chr(int(item, 16)), end="")
except:
    pass

print()

実行

実行すると入力待ちとなり、適当なコードを入力すると文字列として出力されます。

実行

Input code
0x3053 0x3093 0x306b 0x3061 0x306f
String
こんにちは
注意
10進数で変換しようとすると、後ろに余計な文字列が入ってしまうことがあります。
ですが、それ以前の変換結果は問題なく使用できます。

これらを使えば簡単に2進数でコミュニケーションをできます。
皆さんもお試しあれ!

コメントを残す

This site uses Akismet to reduce spam. Learn how your comment data is processed.