ASCII

2017-04-01 9 views
1

にリトルエンディアンの変換私はASCIIにリトルエンディアンの文字列ASCII

8989d0261ee17bbf95ea5596711538b0 

を変換する助けが必要。誰かがこのプロセスを通じて私を導くことができますか?

私はこれが正しいかどうかわからないんだけど、私は私が行うことで、小数点にこの文字列を変換することができると信じている:

8 * 16 ^(文字列の長さ)+ 9 * 16 ^(文字列の長さ - 1 )+ ... + 0 * 16^0

(文字列の値にその位置を掛ける)。それから、私はそれを得ると2^32を引いて、10進数で等価を得ます。次に、オンラインコンバータを使用して10進数をASCIIに変換することができます。これは効果がありますか?

+0

私は「その場で文字列の値を掛ける」の部分をたどるが、その後、私は迷ってしまいました。ここで

はあなたに関心のある多くの例を、持っているリンクです。私たちは助けてくれるでしょう。例や拡張された説明で[編集]してください。また、該当する場合は、プログラミング言語でタグ付けしてください。 –

+0

私は2^32を引くことになっていると思います。なぜなら、それは私がオンラインのどこかで読むことを思い出しているからです。私はこれをしてはいけませんか? – stackofhay42

+0

私は、符号なし整数を2の補数符号付き整数に変換することに関連していると思います。 2^128でなければならないビット数のために。しかし、私はまだフォローしていません。 –

答えて

0

あなたの推論は正しいです。

あなたは数を持っている場合は、259を言う、ベース10には、数は^ 0

2 * 10^2 + 5 * 10^1 + 9 * 10のように書き換えることができます。

同様に、上記の例では、文字列の各文字に値が割り当てられます(16進数に似ています)。あなたの方程式から正しい変換部分があることがわかります。 2の補数は、2進数の演算であり、符号付き数値の表現に使用されます。この方法論に従えば、2^32を減算して10進数で同等の値にする必要があります。

ASCII表現を実現するために同様の逆の操作を行うこともできます(コンバータを使用できない場合に備えて)。 https://www.cs.cornell.edu/~tomf/notes/cps104/twoscomp.html