xticks用法 - python折線圖




在Python中將十六進製字符串轉換為int (7)

如何在Python中將十六進製字符串轉換為int?

我可能會把它當作“ 0xffff ”或者只是“ ffff ”。


在Python中將十六進製字符串轉換為int

我可能會把它當作"0xffff"或者只是"ffff"

要將字符串轉換為int,請將字符串與要轉換的基址一起傳遞給int

這兩個字符串都足以用這種方式進行轉換:

>>> string_1 = "0xffff"
>>> string_2 = "ffff"
>>> int(string_1, 16)
65535
>>> int(string_2, 16)
65535

int推斷

如果您傳遞0作為基數, int將從字符串中的前綴中推斷出基數。

>>> int(string_1, 0)
65535

沒有十六進制前綴0xint沒有足夠的信息來猜測:

>>> int(string_2, 0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 0: 'ffff'

文字:

如果您正在輸入源代碼或解釋器,Python將為您進行轉換:

>>> integer = 0xffff
>>> integer
65535

這對ffff不起作用,因為Python會認為你正在嘗試編寫一個合法的Python名稱:

>>> integer = ffff
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'ffff' is not defined

Python數字以數字字符開頭,而Python名稱不能以數字字符開頭。


'0x'前綴,你也可以使用eval函數

例如

>>a='0xff'
>>eval(a)
255

沒有 0x前綴,你需要明確指定基地,否則無法告訴:

x = int("deadbeef", 16)

使用 0x前綴,Python可以自動區分十六進制和十進制。

>>> print int("0xdeadbeef", 0)
3735928559
>>> print int("10", 0)
10

(您必須指定0作為基礎才能調用此前綴猜測行為;省略第二個參數表示假設基數為10)。


在Python 2.7中, int('deadbeef',10)似乎不起作用。

以下適用於我:

>>a = int('deadbeef',16)
>>float(a)
3735928559.0

對於任何給定的字符串s:

int(s, 16)


要將DWORD從十六進制轉換為有符號整數,請執行如下所示的二進制補碼:

~ (0xffffffff - int('0xdeadbeef', 16)) + 1




hex