从大整数 ZZ(如 NTL 中声明)到十六进制



我目前正在使用 NTL 来处理大整数。此库上的大整数声明为 ZZ。我想从 ZZ 数字变为十六进制。但是,正如我所检查的那样,NTL 不支持从 ZZ 到十六进制的转换。

所以我的问题是我如何从 ZZ(或者代表大十进制数的字符串)变成十六进制形式?如果有人可以提供帮助,我更喜欢是否可以使用此库的附件直接从 ZZ 转到十六进制

Step1:大数字xx最初取为字符串s

步骤2:假设字符串s的长度为l,然后s=s[0]s[1]...S[L-1]。我们从位置 0 开始读取 s 的每个字符,每次使用 int digit = atoi(ts.c_str())将此数字转换为整数变量数字;然后我们使用递归关系值=10*值+数字,其中值声明为 ZZ 并初始化为 0。遍历所有数字后,我们将字符串传递给 ZZ 值

步骤3: 现在要转换为十六进制形式,使用 NTL,我们可以计算 ZZ 数字的模 16。因此,从值%2开始,然后计算(值-值%16)/16,并以这种方式进行,我们得到十六进制形式。

最新更新