python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python输入正负10进制,转4位16进制

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
-0xf

f9
f9
-0x107

e8
e8

c++算十六进制的代码,大意是 (假定x为正数):y= x % 256, 然后256 - y(若x为负数是256+y),然后在对结果进行十六进制转换

我又在python里面试了一下

a = -99999
b = a % 256
print(b)
print(hex(b))

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文