使用数据日志输入格式在Z3中的BitVec中计算1
是否有一种使用数据日志输入格式计算Z3中BitVec中设置为1的位数的紧凑方法使用数据日志输入格式在Z3中的BitVec中计算1,z3,datalog,Z3,Datalog,是否有一种使用数据日志输入格式计算Z3中BitVec中设置为1的位数的紧凑方法 $ z3 -h # most of the lines below omited for clarity Input format: -dl use parser for Datalog input format. 对于这个问题,目前公认的答案是:在SMT 2输入格式中没有很好的方法 对于这个问题,目前公认的答案是:显示如何在Python中执行此操作。对于32位向量,您可以尝试将以下伪代码转换
$ z3 -h # most of the lines below omited for clarity
Input format:
-dl use parser for Datalog input format.
对于这个问题,目前公认的答案是:在SMT 2输入格式中没有很好的方法
对于这个问题,目前公认的答案是:显示如何在Python中执行此操作。对于
32位
向量,您可以尝试将以下伪代码转换为SMT:
v = v - ((v >> 1) & 0x55555555); // reuse input as temporary
v = (v & 0x33333333) + ((v >> 2) & 0x33333333); // temp
c = ((v + (v >> 4) & 0xF0F0F0F) * 0x1010101) >> 24; // count
这是我们的电话,也已发布。谢谢!为了减少样板代码的数量,使用这种方法确实是一个有趣的想法。(不过,这个问题是关于数据日志输入格式的。)