从char*到binary的十进制数

Decimal from a char* to binary

本文关键字:十进制数 binary char      更新时间:2023-10-16

我有一个由一些十进制值组成的字符串,其位数可以超过任何现有的int类型所能容纳的位数(我知道位数)。请给我一些提示,我如何将该数字转换为它的二进制表示(所以我将有另一个char*变量,它将由二进制组成)。

您可以使用类似GNU多精度库的东西,它支持非常长的数字。

您需要一个自定义的BigInt库。GMP将是一个不错的选择。

只是一些提示(如果您想手动实现)。

我是这样做的(家庭作业):

  1. 我使用了一个无符号int数组来存储表示数字(使用二的补码表示)
  2. 我在那个数组上实现了移位和加法运算(与经典积分类型的语义相同)
  3. 由于你可以用乘积的和来表示一个数字,我使用了一个带有移位和加法的算法(如本文所示)。您可以使用字符串中单个字符的位置来生成正确的二进制表示

(我不知道是否有更好或更快的解决方案。)我不会发布代码,这样你就可以自己做了;)