# Finding Binary Exponent of Given Number in Golang

In mathematics, exponentiation is a mathematical operation that involves raising a number to a power, which is a positive integer or a real number. In computer science, exponentiation is used frequently in algorithms and calculations. In this article, we will discuss how to find the binary exponent of a given number in Golang.

## Binary Exponentiation

Binary exponentiation is an algorithm that calculates the exponent of a number in logarithmic time. It works by breaking down the exponent into its binary representation, and then using that to perform a series of multiplications and squarings. This technique is often used in cryptography and other applications where large numbers need to be raised to a power efficiently.

The algorithm works as follows −

• Convert the exponent into binary representation.

• Initialize a variable result to 1.

• For each bit in the binary representation, starting from the most significant bit −

• Square the result.

• If the current bit is 1, multiply the result by the base.

• Return the result.

## Implementation in Golang

Let's see how we can implement the binary exponentiation algorithm in Golang −

### Example

package main

import "fmt"

func binaryExponentiation(base, exponent int) int {
result := 1

for exponent > 0 {
if exponent%2 == 1 {
result *= base
}
base *= base
exponent /= 2
}
return result
}

func main() {
fmt.Println(binaryExponentiation(2, 5)) // Output: 32
}


### Output

32


In this implementation, we first initialize the variable result to 1. Then, we loop through the binary representation of the exponent, starting from the most significant bit. For each bit, we square the base and, if the bit is 1, we multiply the result by the base. Finally, we return the result.

## Conclusion

In this article, we discussed how to find the binary exponent of a given number in Golang using the binary exponentiation algorithm. This algorithm is very efficient and can be used in various applications where exponentiation is required.

Updated on: 12-Apr-2023

79 Views 