0

自分でURLデコードを試した後、うまくいくアイデアを思いついたのですが、あまり効率的ではありませんでした。URLデコードは、私のプログラムで深刻なボトルネックが発生する可能性がある場所であるため、インターネットにアクセスして、より効率的な解決策を見つけることにしました。私はこのcodeguruの記事に出くわしました:

http://www.codeguru.com/cpp/cpp/string/conversions/article.php/c12759

今、私は他の誰かのコードを使用することに反対していません。特にそれが私のものよりも優れている場合はそうです。しかし、私はそれがどのように機能するかを知る前に知りたいです。完全に理解していないコードを使用しても意味がありません。

ここで私は立ち往生しています。デコード機能で行われているポインタの動作のほとんどを理解しています。私が迷子になるのは、HEX2DEC配列とそれに関連する変換演算です。Webサイトでは提供されていませんが、ダウンロード例では、デコード機能と一緒に便利なようにここに投稿します。

http://pastebin.com/AVDnr6cK

この関数は、この配列を使用して16進数を10進数に変換し、次に10進数をASCIIに相当するものに変換するのにどの程度正確ですか?

よろしくお願いします。

4

1 に答える 1

2

配列はルックアップテーブルであり、インデックスとして使用されるASCII文字ごとに、文字が16進文字([0..9][A..F]または[a..f])でない場合は-1を提供するか、その16進文字の整数への変換を提供します。

メインループでは、a%が見つかると、最初に配列を使用して、次の2文字が16進数(!= -1)であるかどうかを判断し、そうである場合はシーケンス全体を変換します。この演算(dec1 << 4) + dec2は、と同等dec1 * 16 + dec2であり、2つの16進文字の8ビットの整数への変換を表します。

于 2011-05-22T10:31:18.157 に答える