编程语言
首页 > 编程语言> > 如何在PHP中将字符转换为7位偶校验

如何在PHP中将字符转换为7位偶校验

作者:互联网

我想将一个字符转换为7位的偶校验.您能否建议我,如何实施?

解决方法:

太糟糕了,您不能使用x86 JPO指令(如果奇偶校验为奇数,则跳转);-)

根据您要处理的数据量,如果您首先设置转换表,可能要比逐字符检查/处理更快.

$map = array();
for($char=0; $char<128; $char++) {
  $parity = 0;
  for($bit=0; $bit<8; $bit++) {
    if($char & (1<<$bit)) {
      $parity ^= 128;
    }
  }
  $map[chr($char)] = chr($char|$parity);
}

(您可能想要彻底测试此代码,我没有)
然后使用strtr()将ascii7转换为ascii7-evenbit.

$input = 'mary had a little lamb'; // all characters must be within the ascii7 range
$evenbit = strtr($input, $map);
// test output
for($i=0; $i<strlen($evenbit); $i++) {
  printf("%08s\n", decbin(ord($evenbit[$i])));
}

标签:character-encoding,parity,php,algorithm,7-bit
来源: https://codeday.me/bug/20191107/2002139.html