2017-08-09 14 views
-2

私はPythonにはとても新しく、以下のアルゴリズムを実行するプログラムを作成するための助けを探しています。それは意図的に簡単なので、データはストリーム内にあるので、テキストファイルを開いて単一の関数を使用して変換することはできません(少なくとも私はできないと思います)。私は言語とオプションを学ぶためにそれを急いでいますが、いくつかの専門家がどのようにこの問題に取り組むかを見たいと思います。ユーザーフレンドリーである必要はありません。各ステップでファイルを出力したいので、各ステップで出力を確認できます。ここでベースN入力のテキストファイルを読み込み、それを16進数に変換する方法

は私が推薦していたアルゴリズムです:

Open file "base-n.txt" 

For each line in file 
    Remove carriage returns 
    Write line to "Clean File" *#to create a single stream of characters#* 

Open file "Clean File" 
For each line in file 
    Read the first x characters *#I presume x depends on n in base n#* 
    Convert the characters from base n to base 16 
    Write the characters to "Output file" 

Open file Output File 
For each line in file 
    Convert line to ASCII 
    Print ASCII line 
End 

ファイルベースのnの情報の大...百通常、わずか数行ではありません。たとえば、下の5番目のテキストの例を次に示します。

0322040104130344042104140401011204310421011203430342043004010112020301130020 
0301042104240401041401120410042204300432041401120400042104130421042401120430 
0410043101120342041404010431013401120344042104200430040103440431040104310432 
0424011203420400041004220410043003440410042004030112040104130410043101410112 
0233043204100430011203440421042004030432040101120413041003430401042404210020 
0430040104140134011204200421042001120344042104200433034204130413041004300112 
0411043204300431042101120413034203440410042004100342011203420141011203130432 
0430042204010420040004100430043004010112042304320410043001120413034203440432 
0430011204200421042001120413041004030432041303420112040003420422041003430432 
0430002004210424042003420424040101410112031004240421041004200112040003420422 

ご協力いただきありがとうございます。私はPythonでもっとうまくいくことを楽しみにしていますが、短期間にこのアルゴリズムが本当に必要です。

+4

このサイトはコーディングサービスではありません。あなたはあなたの研究を行い、コードを書いて、利用可能な情報源を使って解決できないいくつかの特定の問題に遭遇した場合に尋ねます。 –

+0

'hex()'関数を使いますか? –

+0

ASCIIに変換するとどういう意味ですか?あなたは例を挙げることができますか? – mkrieger1

答えて

0

私はhex()機能を示唆するコメントを残しました。小数点以下16進数の例を次に示します。

while True: 
    print("Enter 'x' for exit.") 
    dec = input("Enter number in Decimal Format: ") 
    if dec == 'x': 
     break 
    else: 
     decimal = int(dec) 
     print(decimal,"in Hexadecimal =",hex(decimal),"\n") 
+0

ありがとうございます。問題は、入力ストリームが10進形式ではないということです。ベース5、ベース6、ベース9などです。私はPythonではなく、数字の桁数を識別するアルゴリズムを決定していますそれを標準の16ビットバイナリ値に変換するために各基本を読み込む。 – Gardener6

+0

これで問題は解決しましたか? –

関連する問題