2

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

(pdb) p address
18446738026812173208L

在十六进制转换器的帮助下,我可以发现这等于0x0AFEBFB4,但是如何强制调试器本身进行十六进制格式的输出?

4

1 回答 1

4

您可以使用hexoctbin函数int

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

切片是必需的,因为所有三个函数都返回一个字符串,并且都返回oct一个hexappend L

于 2013-07-25T18:31:35.897 回答