我已经找了一段时间来寻找一个将整数转换为字符串的算法。我的要求是手动这样做,因为我正在使用我自己的大数字类型。我已经定义了+ - * /(with remainder),但是需要找到一种方法从一个双int (高和低,如果int是64位,128位总计)打印一个数字。
我看到了一些答案,例如
Convert integer to string without access to libraries
Converting a big integer to decimal string
但他想知道一个更快的算法是否有可能。我愿意直接使用位(例如,base2到基10 -字符串-但是我找不到这样的算法),但我只是希望避免对可能高达2^128的数字重复进行10除法。
发布于 2018-12-14 14:05:37
您可以使用“分而治之”的方式,使用标准库(通常在该工作中非常有效)将部分转换为字符串。
因此,与其在每次迭代中除以10,您还可以将代码块除以10**15,并让库将这些块转换为15位数字字符串。最多三步之后,你就完蛋了。
当然,您必须对零填充做一些字符串操作。但是也许您的库在这里也可以帮助您,如果您对所有较低的部分使用%015d零填充格式,对于最高的非零部分使用非填充%d格式。
https://stackoverflow.com/questions/53777629
复制相似问题