如何将超大 (>1MB) 十进制数转换为字节/十六进制/二进制?
例如,数字“300”应转换为 {0x01, 0x2C}。字节顺序无关紧要,{0x2C, 0x01} 也可以。
源编号存储在准备好的文件中(没有标点符号、空格或换行符)。最大的刚好超过 17MB,虽然我不能排除我将来会有一个 100MB 的数字。目标也是一个文件。
有没有一种不需要很长时间的方法,或者在需要很长时间的情况下是安全的?
我担心使用BigInteger
会花费很长时间并且不是故障保存(即,如果出现问题,我无法中途恢复)
我并不反对实现我自己的算法,尽管我正在寻找比“检查奇数,除以 2”更有效的方法。我已经看到二进制到 BCD 的非常有效的实现,即Shift 和 Add-3算法,并且正在寻找一种类似有效的反向实现。
对还支持定点数(1 位数字和其余小数,例如Pi)的实现的额外赞誉。