我刚刚开始使用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个不同的不同数字?我期望第一个数字是十六进制字符串,第二个数字是十进制等效数,在这种情况下第二个值是多少?
答案 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