【发布时间】:2018-05-18 14:46:03
【问题描述】:
大家好!我有一个家庭作业,我需要构建一个可以处理非常大数字的高精度计算器。这个分配的重点是现在允许将数组中的值存储为一个数字到单独的数组单元格。
那是数字的记忆表示
335897294593872
像这样
int number[] = {3, 3, 5, 8, 9, 7, 2, 9, 4, 5, 9, 3, 8, 7, 2};
不合法,
也没有
char number[] = {3, 3, 5, 8, 9, 7, 2, 9, 4, 5, 9, 3, 8, 7, 2};
也没有
std::string number("335897294593872");
我想要做的是将整数分成 32 位块,并将每个单独的块存储在单独的数组单元格数据类型中,数据类型为 u32int_t。
由于我从键盘获得输入,我最初将所有值存储在 std::string 中,然后将它们放入整数数组中以执行操作。
如何将大数的二进制表示放入整数数组中正确填充所有位?
提前谢谢你。
编辑:仅使用标准 C++ 库
EDIT2:我希望能够对具有大数字的数组进行加、减、乘、除,所以我的意思不仅仅是将字符串切分并将十进制表示形式存储在整数数组中,而是保留数字本身的位顺序能够计算进位。
【问题讨论】:
-
作为一个简单的练习,尝试以 10 为底,大约每个数字 3.322 位。
-
这不是 BigInt 库,我说的是纯 c++,没有使用侧库