在pdb中打印备用数字表示

时间:2013-07-25 18:23:49

标签: python pdb

我有一个值(称为地址),这是一个内存地址,我试图弄清楚它指向的位置。

(pdb) p address
18446738026812173208L

借助十六进制转换器,我可以发现它等于0x0AFEBFB4,但是如何从调试器本身强制使用十六进制格式的输出?

1 个答案:

答案 0 :(得分:4)

您可以使用hexoctbinint函数:

In [8]: hex(18446738026812173208L)
Out[8]: '0xfffffa8018d46b98L'

In [9]: oct(18446738026812173208L)
Out[9]: '01777777650003065065630L'

In [10]: bin(18446738026812173208L)
Out[10]: '0b1111111111111111111110101000000000011000110101000110101110011000'

In [11]: int(bin(18446738026812173208L), 2)
Out[11]: 18446738026812173208L

In [12]: int(oct(18446738026812173208)[:-1], 8)
Out[12]: 18446738026812173208L

In [13]: int(hex(18446738026812173208)[:-1], 16)
Out[13]: 18446738026812173208L

切片是必需的,因为所有三个函数都返回一个字符串,而octhex都追加L