2011-09-14 70 views
0

すべての256バイトの組み合わせの16進値のリストを生成したい。Pythonで16進数のリストを生成する

基本的には、たとえば 'A' => '\ x41'とします。私は 'A' => '41'に変換できるモジュールしか見つけていませんが、これは私が望むものではありません。

どうすればこの問題を解決できますか?誰かが適切なモジュールやアルゴリズムを知っていますか(私は256の16進値をハードコーディングしないようにしたいのですが...)?

+1

ASCIIのような形式の文字列で遊ぶことができますいくつかの他の方法での値の表示をしたい場合 実際には128個の値をしている - あなたはASCIIを意味するか、「8ビットに収まる」のか?その点については、印刷可能な文字のみを必要としますか? –

+1

なぜそれを文字列に戻したいのですか? '' \ x41 ''は '' A''と同じです(試してみてください)。または文字列リテラル 'r '\ x41''を望みますか? – multipleinterfaces

+0

「モジュールしか見つかりませんでした」どれ?それは賢明ではないようです。多分あなたは機能を意味するでしょうか? –

答えて

1
>>> hex(ord('A')) 
'0x41' 

これはあなたが欲しいものですか?

多分このような何か?

for o in range(128): 
    print chr(o), hex(o) 

それとも

import string 
for c in string.printable: 
    print c, hex(ord(c)) 
1

ord('A')整数( 'A' の場合の65)のようにASCII値を返します。あなたは、任意の基底の整数を考えることができます。 hex(ord('A'))は、print "%x" % ord('A')のようにいい文字列(この場合は「0x41」)を返します。

0

がリストとして各ASCII大文字と小文字の文字の数値を取得するには、次のように

from string import ascii_letters 
[ord(c) for c in ascii_letters] 
0

は、あなたが1つの文字のために行うための方法を見つけ、ちょうどでそれらのすべてのためにそれを行うことができますループまたはリストの理解。 [(chr(x), '%x' % x) for x in range(256)]

これは(char、値が16進数の文字列)でリストを作成します。あなたは

​​