我想计算一下bitvec实际使用的长度。例如,我们有一个类似00101100的bitvec,实际使用的长度是最右边1的位置。无论如何,我在z3py中有一个代码如下:
from z3 import *
import math
def length(t):
return int(math.ceil(math.log(t,2)))
好吧,如果我使用整数作为输入,这根本不是问题,因为事实上这是一个纯python代码。如果我使用
x = BitVecVal(31,8)
print length(x)
然后,我遇到了一个问题,因为实例没有属性 float 。我尝试过z3_mk_bv2int或ToInt()。但它们都没有奏效。
请帮我解决,或z3py中不允许。
答案 0 :(得分:0)
我不确定这是“官方”方式,但你可以获得字符串表示然后将其解析为整数:
postAsync.delegate = this