在Python3中有没有一种使用十六进制进行数学运算的方法?

在Python3中有没有一种使用十六进制进行数学运算的方法?,python,python-3.x,p2p,Python,Python 3.x,P2p,我正在与P2P合作,希望能让同龄人找到彼此。我正在构建我的网络,其中每个节点都有一组理想的节点可在网络中查找。这些对等方的ID采用十六进制格式。在网络中,节点不断搜索具有最接近其理想位置(基于其自身对等id)id的对等方 查看网络中谁最接近并找到其他对等点的最简单方法是将ID视为数字。在执行数学运算之前转换为整数会使事情变得非常复杂。十六进制和十进制,或者任何其他类型的编码,实际上,基本上只是1和00xa0与160相同,后者与0b10100000相同,依此类推。当你做“十六进制数学”时,“十六进

我正在与P2P合作,希望能让同龄人找到彼此。我正在构建我的网络,其中每个节点都有一组理想的节点可在网络中查找。这些对等方的ID采用十六进制格式。在网络中,节点不断搜索具有最接近其理想位置(基于其自身对等id)id的对等方


查看网络中谁最接近并找到其他对等点的最简单方法是将ID视为数字。在执行数学运算之前转换为整数会使事情变得非常复杂。

十六进制和十进制,或者任何其他类型的编码,实际上,基本上只是1和0
0xa0
160
相同,后者与
0b10100000
相同,依此类推。当你做“十六进制数学”时,“十六进制数学”完全是外围的。如果您有一个十六进制字符串,如
“0xa0”
,并希望将其转换为可以使用的数字,则只需执行以下操作:

>>> a = 0xA
>>> b = 0xa
>>> a + b
20
>>> hex(a + b)
'0x14'
def from_hex(hexdigits):
    return int(hexdigits, 16)

x = "0xa0"
y = "0x10"
z = hex(from_hex(x) + from_hex(y))
print(z) # => 0xb0

除非您想从
int
创建自己的自定义子类,否则没有真正的解决方法,这根本不值得。

十六进制和十进制,或者任何其他类型的编码,实际上,基本上只是1和0
0xa0
160
相同,后者与
0b10100000
相同,依此类推。当你做“十六进制数学”时,“十六进制数学”完全是外围的。如果您有一个十六进制字符串,如
“0xa0”
,并希望将其转换为可以使用的数字,则只需执行以下操作:

def from_hex(hexdigits):
    return int(hexdigits, 16)

x = "0xa0"
y = "0x10"
z = hex(from_hex(x) + from_hex(y))
print(z) # => 0xb0

除非您想从
int
创建自己的自定义子类,否则没有真正的解决方法,这根本不值得。

十六进制在Python中不是一个类。它只能用字符串表示,不能用字符串进行数学运算。你需要转换成其他的东西才能做到这一点。你到底想做什么?如果用Python引用十六进制的内容,它将表示为一个整数值。请参阅:
>>0x0F
产生
15
。十六进制是整数的一种特殊表示形式。当然,你可以用整数做数学题。“严重”有多严重?你应该把表示的概念和数字本身的概念分开。。。用它做数学运算应该不会太复杂……十六进制在Python中不是一个类。它只能用字符串表示,不能用字符串进行数学运算。你需要转换成其他的东西才能做到这一点。你到底想做什么?如果用Python引用十六进制的内容,它将表示为一个整数值。请参阅:
>>0x0F
产生
15
。十六进制是整数的一种特殊表示形式。当然,你可以用整数做数学题。“严重”有多严重?你应该把表示的概念和数字本身的概念分开。。。用它做数学运算应该不会太复杂……你不需要去掉
'0x'
int
工作:
int(“0x2a”,16)
收益率42你不需要去掉
'0x'
int
工作:
int(“0x2a”,16)
收益率42