在Python中将十六进制值转换为十进制

时间:2017-10-18 08:19:30

标签: python

我刚刚开始使用python中的十六进制值,我对刚刚遇到的内容感到有些惊讶。我希望以下代码首先打印十六进制字符串,然后打印十进制值。

输入:

n = 0x8F033CAE74F88BA10D2BEA35FFB0EDD3
print('Hex value for n is:', n)
print('Dec value for n is:', int(str(n), 16))

输出:

  

n的十六进制值为:190096411054295805012706659640261275091

     

n的Dec值是:8921116140846515089057635273465667902228615313

如何显示2个不同的不同数字?我期望第一个数字是十六进制字符串,第二个数字是十进制等效数,在这种情况下第二个值是多少?

1 个答案:

答案 0 :(得分:7)

'sqlite' => [ 'driver' => 'sqlite', 'database' => env('DB_DATABASE', database_path('database.sqlite')), 'prefix' => '', 'options' => [ PDO::ATTR_STRINGIFY_FETCHES => false, PDO::FETCH_NUM => true, ], ], 是一种使用十六进制表示法输入整数的方法。

0x

但实例化后,这个十六进制表示法会被直接忘记:

>>> n = 0x8F033CAE74F88BA10D2BEA35FFB0EDD3

因此,当您调用>>> n 190096411054295805012706659640261275091 >>> str(n) '190096411054295805012706659640261275091' 时,Python会将int(str(n), 16)解释为十六进制数字:

'190096411054295805012706659640261275091'

您需要输入原始十六进制字符串:

>>> int(str(n), 16)
8921116140846515089057635273465667902228615313

或使用hex

>>> int("8F033CAE74F88BA10D2BEA35FFB0EDD3", 16)
190096411054295805012706659640261275091