小编Jon*_*hez的帖子

有没有办法让这个功能更快?(C)

我在 C 中有一个代码,它以与人类相同的方式进行加法,因此,例如,如果我有两个数组A[0..n-1]and B[0..n-1],则该方法将执行C[0]=A[0]+B[0]C[1]=A[1]+B[1]...

我需要帮助使这个函数更快,即使解决方案使用的是内在函数。

我的主要问题是我有一个非常大的依赖问题,因为迭代i+1取决于迭代的进位i,只要我使用基数 10。所以如果A[0]=6B[0]=5C[0]必须是1并且我有1下一个加法的进位。

我能做的更快的代码是这样的:

void LongNumAddition1(unsigned char *Vin1, unsigned char *Vin2,
                      unsigned char *Vout, unsigned N) {
    for (int i = 0; i < N; i++) {
        Vout[i] = Vin1[i] + Vin2[i];
    } 

    unsigned char carry = 0;

    for (int i = 0; i < N; i++) {
        Vout[i] += carry;
        carry = Vout[i] / …
Run Code Online (Sandbox Code Playgroud)

c arrays optimization performance add

8
推荐指数
1
解决办法
394
查看次数

标签 统计

add ×1

arrays ×1

c ×1

optimization ×1

performance ×1