如何在php中将字符转换为7位偶校验
我想将一个字符转换为 7 位偶校验。您能建议我如何实施吗?
I want to convert a Character to a 7 bit even parity. Can you please suggest me, how to implement this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
太糟糕了,您不能使用 x86 JPO 指令(如果奇偶校验为奇数则跳转);-)
根据您想要处理的数据量,如果您首先设置翻译表,可能会比逐个字符检查/处理更快。
(您可能想彻底测试这段代码,但我没有)
然后使用 strtr() 将 ascii7 转换为 ascii7-evenbit。
Too bad you can't use the x86 JPO instruction (Jump if Parity Odd) ;-)
Depending on the amount of data you want to handle it might be faster if you first set up a translation table than to check/handle character by character.
(you might want to test this code thoroughly, I haven't)
and then use strtr() to translate from ascii7 to ascii7-evenbit.
冒着被否决的风险:
这将计算 1,并在第一位添加额外的 1(如果是奇数)或 0(如果是偶数)。然后将其他 7 位复制到返回值中。这将为您留下 7 位的字符串表示形式,以及字节的偶校验。
对于那些比我更有经验的人来说,这看起来正确吗?输出示例:
11111111
01000001
00111010
10111011
At the risk of downvotes:
This will count the 1's, and add an extra 1 (if odd) or a 0 (if even) to the first bit. Then copy the other 7 bits into the return. This will leave you with a string representation of the 7 bit, even parity of the byte.
To those more experienced then I, does this look right? Example output:
11111111
01000001
00111010
10111011
这是一个 C 版本:
我确信翻译成 PHP 会很容易,但我会避免让自己尴尬。
受到这个 Bit Twiddling Hack 的启发。
Here's a C version:
I'm sure translation to PHP would be easy, but I'll avoid embarrassing myself.
Inspired by this Bit Twiddling Hack.