这里是Escape Sequences PHP.net的文档(将非打印字符(即SUB)编码为搜索模式的\ cx):
“\ cx”的确切效果如下:如果“x”是小写字母,则将其转换为大写。然后反转字符(十六进制40)的第6位。因此“\ cz”变为十六进制1A,但“\ c {”变为十六进制3B,而“\ c;”变为十六进制7B。
我有点理解转换。即Z(1011010)第一个1反转为0并给出结果SUB(0011010)。但是不应该将第7位倒置,而不是6位?十六进制40(1000000)在这做什么?我知道我的消费是错误的,我真的需要你的帮助。非常感谢你!
答案 0 :(得分:1)
但是不应该将第7位倒置,而不是6位?十六进制40(1000000)在这做什么?
这两个问题彼此相关。文档用“位6”表示它们的值。
基本上,他们使用的是“bit 0是最不重要的位”的通用编号系统。因此,字节中的位是位0到位7。
因此,翻转一个字节的第6位基本上就是用0x40取字节的XOR。