短串的散列函数
我想将功能名称从弱嵌入式系统发送到主机进行调试.由于两者都通过RS232连接,这是带宽短的,所以我不想以字面方式发送功能的名称.长约15个字符长的函数名,我有时想以相当高的速度发送这些名字.
我想到的解决方案是找到一个哈希函数,将这些函数名称哈希到单个字节,并且只发送这个字节.主机将扫描源中的所有功能,使用相同的功能计算其散列,然后将该散列转换为原始字符串. 散列函数必须是 >短距离碰撞 显然,它不需要任何方式的安全,只有无碰撞.所以我不认为使用加密相关的哈希函数值得他们的复杂性. 示例代码: int myfunc() { sendToHost(hash("myfunc")); } 主持人将能够向我介绍执行myfunc功能的时间列表. 是否有一些已知的哈希函数保持上述条件? 编辑: 我假设我将使用不到256个函数名. 解决方法
尝试
minimal perfect hashing:
包含C代码. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |