我在C语言中工作,需要加减一个64位数字和一个128位数字。结果将保存在128位数字中。我使用整数数组来存储128位数字的上半部分和下半部分(即uint64_t bigNum[2],其中bigNum[0]是最低有效的)。
有谁能帮我做一个加减法函数,它可以接受bigNum并对其加/减auint64_t
我在网上看到过很多不正确的例子,所以请考虑以下几点:

bigNum[0] = 0;
bigNum[1] = 1;
subtract(&bigNum, 1);

此时bigNum[0]应设置所有位,而bigNum[1]不应设置位。

最佳答案

在一年级或二年级的时候,你应该学会如何把1和10的加法分解成几个部分,把它分解成十和单位的多个独立加法。当处理大数时,同样的原理可以应用于计算任意大数的算术运算,通过意识到你的单位现在是2位的单位,你的“十”是2位的单位,等等。

关于c - 如何正确加减128位数字(如两个uint64_t)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4757338/

10-13 05:35