小编Har*_*rry的帖子

从字符串中获取IPv4地址的最快方法

我有以下代码,比inet_addr快约7倍.我想知道是否有办法改进这个以使其更快或者如果存在更快的替代方案.

这段代码要求提供一个有效的空终止IPv4地址,没有空格,在我的情况下总是如此,所以我针对这种情况进行了优化.通常你会有更多的错误检查,但如果有办法使更快或更快的替代存在,我会非常感激.

UINT32 GetIP(const char *p)
{
    UINT32 dwIP=0,dwIP_Part=0;
    while(true)
    {
        if(p[0] == 0)
        {
            dwIP = (dwIP << 8) | dwIP_Part;
            break;
        }
        if(p[0]=='.') 
        {       
            dwIP = (dwIP << 8) | dwIP_Part;                     
            dwIP_Part = 0;
           p++;
        }
        dwIP_Part = (dwIP_Part*10)+(p[0]-'0');
        p++;
    }
    return dwIP;
}
Run Code Online (Sandbox Code Playgroud)

c c++ string optimization ip-address

16
推荐指数
1
解决办法
1805
查看次数

减少哈希值的大小

如果我有一些数据,我会像这样使用 SHA256 进行哈希处理:- hash=SHA256(data)

然后只复制哈希的前 8 个字节而不是整个 32 个字节,找到不同数据的哈希冲突有多容易?是 2^64 还是 2^32 ?

如果我需要将某些数据的哈希减少到较小的大小(n 位),有什么方法可以确保搜索空间 2^n ?

hash cryptography hash-collision

0
推荐指数
1
解决办法
3179
查看次数

标签 统计

c ×1

c++ ×1

cryptography ×1

hash ×1

hash-collision ×1

ip-address ×1

optimization ×1

string ×1