Multiplication of two integers using bitwise operators

前端 未结 7 1019
迷失自我
迷失自我 2020-11-30 00:49

How can I multipy two integers using bitwise operators?

I found an implementation here. Is there a better way of implementing multiplication?

For example: 2

7条回答
  •  萌比男神i
    2020-11-30 01:30

    #include 
    
    int main(void)
    {
        int a, b, result;
        printf("Enter the numbers to be multiplied:");
        scanf("%d%d", &a, &b);       // a > b
        result = 0;
        while (b != 0)               // Iterate the loop till b == 0
        {
            if (b & 1)               // Bitwise & of the value of b with 1
            {
                result = result + a;  // Add a to result if b is odd .
            }
            a <<= 1;                    // Left shifting the value contained in 'a' by 1
                                      // Multiplies a by 2 for each loop
            b >>= 1;                    // Right shifting the value contained in 'b' by 1.
        }
    
        printf("Result: %d\n",result);
    }
    

    Source

提交回复
热议问题