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...