All streams
Search
Write a publication
Pull to refresh

Comments 2

На Си это получится так

uint32_t int_pow_fast(const uint32_t base, 
                      const uint32_t exponenta) {
    uint32_t result = 0;
    uint32_t n = exponenta;
    if(0==n) {
        result =1;
    } else {
        result = 1;
        uint32_t current_product = base;
        /*run through all the exponenta bits*/
        while (0 < n) {
            if (1&n) {
              /* found a factor of 2 different from 1 in 
                 our exponenta decomposition*/
              result *= current_product;
            }
            current_product *= current_product;
            n = n >> 1;
        }
    }
    return result;
}
Sign up to leave a comment.

Articles