使用python进行十六进制计算

问题描述 投票:0回答:1

我使用python 2.7,我知道它已经过时了,但是对于这个例子,它对我来说更容易理解。假设我的十六进制为0x70 / 3 = '0x25,但我知道25 + 25 + 25 = 6F不等于70,实际上应该为25 + 25 + 26 = 70

>>> a = hex(0x70 / 3)
>>> print a
0x25
>>> print hex(int(a, 16) * 2)
0x4a
>>> print hex(int(a, 16) * 3)
0x6f
>>> print hex(int(a, 16) * 3 + 1)
0x70

[我想让python脚本将0x70除以​​3,结果得到0x25,然后自我检查,以25 * 3填充其余部分该数字是必需的(在这种情况下,请再次使+1等于70,这是对的。但是不能对其进行硬编码,因为不同的十六进制数字并不一定需要添加+1数字基本上,我需要弄清楚如何编写脚本,知道它应该是25 + 25 + 26 = 70,因为我将需要这3个数字供以后使用,这对我来说很难解释,因此我很抱歉,如果脚本可以打印真正可以使我的生活更轻松的0x70 / 3,例如:

a = hex(0x70 / 3)
print a
0x25
0x25
0x26
python hex
1个回答
0
投票

我刚刚安装了python 3,但也许它也可以正常工作

hex(0x70 / 3)

为我打印一个错误,因为这是休息的结果。 0x70 = 112(以10为底)112/3 = 37,周期3。最后的周期3不能用十六进制表示(据我所知)

如果您在没有休息的情况下使用视界,则会得到0x25

hex(0x70 // 3)

如果只计算其余部分,您将得到0x01

hex(0x70 % 3)

分母是否已修复或已更改?您可以使用无余数分母1的结果或除法,并且最后一个结果必须加上余数除法的结果。

© www.soinside.com 2019 - 2024. All rights reserved.