说我有
1009732533765201
我想要:
0x1009732533765201
115558138301619329
您可以用这样的字符串在编程语言中实现这一点
内景('1009732533765201',16)
但我想要纯数学的方法。将1009732533765201转换为115558138301619329的base16
我尝试了:int('1009732533765201',16),但是这使用了字符串,对于大的数字来说速度很慢,我只寻找一个数学角度。你知道吗
下面是我知道的一个数学方法: 0x1009732533765201=115558138301619329
下面是一个python方法: 内景('1009732533765201',16)
但我只能手动完成第一个数学版本。不使用字符串将0x1009732533765201转换为将“0x”连接到“1009732533765201”且不使用eval,如何实现这一点
有没有什么方法可以不使用int('1009732533765201',16)而将1009732533765201转换为与0x1009732533765201相同的输出以获得其整数?我的目标是找到一种更快的方法
回答帕提亚射击,这是他的方法,这正是我所寻找的结果,一种没有int()的方法
orig = 1009732533765201
num = orig
result = 0
i = 0
while num != 0:
result += (num % 10) * (16 ** i)
num //= 10
i += 1
print(orig, num, result, "%x" % (result))
1009732533765201 0 115558138301619329 1009732533765201
正如我在评论中所说的,Python完全知道如何处理以16为基数的数字。继续,把基数16的值赋给一个变量。你知道吗
举个例子:
正如我所说的,这对其他的基地是有效的,比如基地2:
和基数8:
这里的想法是,我们一次看一个原始十进制数的每一位,从右到左,将它乘以
16 ** i
而不是10 ** i
,然后将它加到新的数字上。你知道吗结果相当于将数字的原始十进制表示形式解释为十六进制。你知道吗
运行代码让我们。。。你知道吗
相关问题 更多 >
编程相关推荐