在某些 PHP 中,我需要比较两个字符串,但仅限于在位掩码中设置为 1 的位。我将如何实现这种行为?
我试过了:
$string1='aaabbb';
$string2='ababbb';
$bitmask='101101';
function compare($string1, $string2, $bitmask){
$resultBitmask=(~($string1 ^ $string2)|~$bitmask);
}
为了清楚起见,出于说明目的,我将ff
字节写入1
位掩码中。ff
当生成位掩码时,它们实际上是十六进制的。0
空字节也是如此。
每次调用函数时,字符串和位掩码的长度总是不同的。我设法获得了一组位进行比较,但由于长度不同,我无法检查它们是否都已设置。目前,我一直在使用preg_match
匹配任意ff
字节数的正则表达式,但有更优雅的解决方案吗?
编辑:由于字符串的长度不超过 4096 位,因此它们不能转换为数字。