【发布时间】:2016-03-14 15:43:01
【问题描述】:
我正在使用 Python 中的 Z3 并试图弄清楚如何进行字符串操作。一般来说,我以z3.String 为对象,做str1 + str2 == 'hello world' 之类的事情。但是,我一直无法完成以下行为:
solver.add(str1[1] ^ str1[2] == 12) # -- or --
solver.add(str1[1] ^ str1[2] == str2[1])
所以基本上添加了字符 1 xor 字符 2 等于 12 的约束。我的理解是字符串被定义为引擎盖下的 8 位 BitVectors 序列,并且 BitVectors 应该能够被异或。
谢谢!
【问题讨论】:
标签: python python-3.x z3 z3py