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))
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。