2016-03-02 104 views
0

我不知道爲什麼六角函數返回像「×41」,而不是0×41爲什麼Hex()函數返回一個字符串而不是int hex?

enter image description here

我需要的ASCII值轉換爲十六進制的字符串。但我想以0x INT格式,而不是'0x'字符串。

ascii = 360 
hexstring = hex(ascii) 
hexstring += 0x41 # i cant do this because hexstring is a string not a int hex 

我怎樣才能得到一個int hex? 謝謝

回答

6

沒有int十六進制對象。只有一個替代語法創建整數:

>>> 0x41 
65 

您也可以使用0o1010也得到相同的值。或使用0b1000001以二進制指定它;它們全都是與Python完全相同的數值;它們都只是在您的代碼中指定整數值的不同形式。

只需保持ascii爲一個整數,總結十六進制符號的值與該:

>>> ascii = 360 
>>> ascii += 0x41 
>>> ascii 
425 

hex()生成可由Python程序中相同的方式來解釋的字符串,和調試代碼時,通常使用或快速演示文稿輸出(但如果您想生成最終用戶輸出而不使用0x前綴,則應使用format(number, 'x'))。不需要使用整數。

+0

非常感謝! :) 這解決了我的問題 – Darcyys

相關問題