gpt4 book ai didi

c++ - 帮助我理解这个 URL 解码器 :

转载 作者:行者123 更新时间:2023-11-28 03:49:18 30 4
gpt4 key购买 nike

在自己尝试 URL 解码之后,我设法想出了一些可行的想法 - 但它们不是很有效。由于 URL 解码是我的程序中可能出现严重瓶颈的地方,我决定上网寻找更有效的解决方案。我遇到了这篇 codeguru 文章:

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

现在,我不反对使用别人的代码,尤其是如果它比我的好。但是,我想在我做之前知道它是如何工作的。使用您不完全理解的代码毫无意义。

这是我卡住的地方,我理解解码函数中正在进行的大部分指针工作。我迷路的地方是 HEX2DEC 数组和相关的转换算法。它没有在网站上提供,而是在示例下载中提供,因此为了方便您,我将其与解码功能一起发布在这里:

http://pastebin.com/AVDnr6cK

这个函数究竟是如何使用这个数组将十六进制转换为十进制,然后将十进制转换为等效的 ASCII?

再次感谢您的帮助。

最佳答案

数组是一个查找表,对于用作索引的每个 ascii 字符,如果字符不是十六进制字符(在 [0..9][A..F][a..f] 中),它将提供 -1 或转换为该十六进制字符的整数。

在主循环中,每当一个%发现该数组首先用于确定以下两个字符是否为十六进制( != -1 ),如果是则转换整个序列。操作(dec1 << 4) + dec2相当于dec1 * 16 + dec2 , 表示两个十六进制字符到8位整数的转换。

关于c++ - 帮助我理解这个 URL 解码器 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6087293/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com