- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
为了节省可执行文件的空间,我想计算 ASCII 字符串的校验和(或哈希值),然后使用校验和来查找相应的字符串。
这节省了空间,因为我不必用 ASCII 字符串填充可执行文件;相反,仅存储 32 位整数。
现在,为了让这个想法发挥作用,我需要一个校验和算法,该算法能够计算最多为 N
的字符串的唯一校验和。人物。因为,大部分字符串都是标识符,N=20
可以接受。
有人知道满足我的标准的校验和算法吗?
理论:由于校验和算法映射 {0,1}^* -> {0,1}^m
通常存在无数次碰撞。但是,这里我只考虑最多为 N
的字符串。字符,所以校验和(压缩)算法映射{0,1}^N -> {0,1}^m
, 与 N<=m
, 保证存在而不会发生碰撞(单射)。
最佳答案
如果您的哈希值是 32 位整数,那么您有 2^32 种可能的哈希码。一个 20 个字符的 ASCII 字符串至少有 7 x 20 = 140 位,如果您以字节为单位,则为 8 x 20 = 160 位。原始 ASCII 是 7 位代码,因此存在差异。
如果不复制一些哈希值,就无法将 140 位放入 32 位。
20 个 ASCII 字符串的唯一校验和至少需要 140 位,可能更像是 160 位。
关于python - 寻找一种简单的校验和(或散列)算法,对最多 N 个字符的 ASCII 字符串无冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43824092/
如何在 PHP 中生成 CRC-8 校验和? 最佳答案 function crcnifull ($dato, $byte) { static $PolyFull=0x8c; for ($i=0
我正在编写代码来使用 32 位无符号整数计算 CRC16。当尝试打印执行 CRC 操作的 XOR 函数的返回值时,它总是打印 0。我尝试了各种调试方法,例如打印语句,但是,我似乎无法弄清楚! 这是我的
ThinkPHP3.2.3验证码显示、刷新、校验 ,具体如下: 显示验证码 首先在Home/Controller下创建一个公共控制器PublicController
我想将自定义验证绑定(bind)到 TimePicker 自定义控件,但下面的代码显示“无法将内容添加到 TimePicker 的对象类型。”。
目录 Spring 校验(validator,JSR-303)实现 什么是JSR-303规范 与Spring MVC结合 实体类添加
导包和配置 导入 JSR 303 的包、hibernate valid 的包 ?
我是一名优秀的程序员,十分优秀!