我想用 KEY 对字符串(实际上是它的二进制表示)进行按位异或。
运算结果应以 HEX 表示。
我所拥有的:'a' - 要更改的 UTF-8 字符串。'ACF123456' - 十六进制的键。
结果被视为 BIGINT:
select CONV(HEX('a'), 16, 10) ^ CONV('ACF123456', 16, 10);
结果显示为十六进制:
select CONV( CONV(HEX('a'), 16, 10) ^ CONV('ACF123456', 16, 10), 10, 16);
问题:
- 上面的转换是否正确完成?
- 如果字符串太长会发生什么(即,我们有 'a veeeeeery long string' 而不是 'a')?似乎 conv() 函数有一个限制(它是文档中的 64 位精度)吗?除了 XOR 运算符之外,^ 也有一个限制,与 nr 相关。返回结果的位数。任何适用于任何字符串的解决方案(允许存储过程)?
谢谢。