python 負數轉換成16進製制

2021-08-18 02:34:23 字數 994 閱讀 7794

import struct

print(str(struct.pack("i",-15))[4:6])

print(hex(16**7 -15)[-2:])

print(hex(-15))

print()

print(str(struct.pack("i",-263))[4:6])

print(hex(16**7 -263)[-2:])

print(hex(-263))

print()

print(str(struct.pack("i",-10008))[4:6])

print(hex(16**7 -10008)[-2:])

print()

以下為輸出結果:

f1

f1-0xf

f9f9

-0x107

e8e8

再試一組:

print(str(struct.pack("i", -463))[4:6])

print(hex(16**7 - 463)[-2:])

輸出結果:

xf

31

通過計算器查詢16進製制-463可知hex(16**7 - 463)可以得出正確結果

前兩天又看了公司一位老人用c++算十六進製制的**,大意是 (假定x為正數):y= x % 256, 然後256 - y(若x為負數是256+y),然後在對結果進行十六進製制轉換

我又在python裡面試了一下

a = -99999

b = a % 256

print(b)

print(hex(b))

結果為:

97

0x61

python在對負數取餘數的時候直接加上256了,所以也就更加簡單了。

10進製數轉換成16進製制

十六進製制的元素個數固定,而且還有對應編號,可以用查表法.乙個int型別十進位制數在32位作業系統中佔4個位元組,32位2進製數取它的低8位,例如60,在記憶體中以二進位制數0011 1100存放,而乙個十六進製制數中每一位數對應二進位制中4位數,因此可以將十進位制數與f進行 與 運算,得出低四位 ...

oracle blob的插入轉換成16進製制

update trkhdr set noteblob 王 where id asdf 出錯 無效的16進製制數字 update trkhdr set noteblob utl raw.cast to raw 王 where id asdf 插入空值是最好先插入 empty blob 太長的內容.好像...

10制轉換成16進製制

實現如下 using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.linq using system.t...