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

再试一组:

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了,所以也就更加简单了。



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值