Python输入正负10进制,转4位16进制问题
作者:wavepool18
这篇文章主要介绍了Python输入正负10进制,转4位16进制问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
python输入正负10进制,转4位16进制
#输入正负十进制,转4位16进制
def int_transform_4hex(intNums):
if intNums < 0: #如果是负数
str_list_16nums = list(hex(intNums%65536))
insert_num = 'f'
else: #如果是正数
str_list_16nums = list(hex(intNums))
insert_num = '0'
#补位数
if len(str_list_16nums) == 5:
str_list_16nums.insert(2, insert_num)
elif len(str_list_16nums) == 4:
str_list_16nums.insert(2, insert_num)
str_list_16nums.insert(2, insert_num)
elif len(str_list_16nums) == 3:
str_list_16nums.insert(2, insert_num)
str_list_16nums.insert(2, insert_num)
str_list_16nums.insert(2, insert_num)
else:
pass
crc_data = "".join(str_list_16nums) # 用""把数组的每一位结合起来 组成新的字符串
hexNums = crc_data[2:4] + ' ' + crc_data[4:]
return hexNums
if __name__ == '__main__':
print(int_transform_4hex(200))
print(int_transform_4hex(-200))程序运行结果如下(已检测正确)

python负数十进制转化为16进制
python负数转换16进制
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
-0xff9
f9
-0x107e8
e8
c++算十六进制的代码,大意是 (假定x为正数):y= x % 256, 然后256 - y(若x为负数是256+y),然后在对结果进行十六进制转换
我又在python里面试了一下
a = -99999 b = a % 256 print(b) print(hex(b))
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
