Go Program to Convert Binary to Decimal

Go Program to Convert Binary Numbers to Decimal

This document explains a Go program designed to convert binary numbers to decimal. The program is structured to take a binary number as input and output its decimal equivalent.

Program Explanation

The Go program to convert a binary number to a decimal is divided into several sections:

  1. Package Declaration: The program starts with declaring the package name as main.
  2. Importing Packages: We import necessary packages. In this case, we use the fmt package for input and output operations and strconv for string conversion operations.
  3. Main Function: The main function is the entry point of the program where the conversion logic is implemented.

Go Code

package main

import (
    "fmt"
    "strconv"
)

// main is the entry point of the program
func main() {
    // Prompt user for binary input
    fmt.Print("Enter a binary number: ")
    var binaryInput string
    fmt.Scanln(&binaryInput)

    // Convert binary to decimal
    decimalOutput, err := binaryToDecimal(binaryInput)
    if err != nil {
        fmt.Println("Error:", err)
        return
    }

    // Print the result
    fmt.Printf("The decimal equivalent of %s is %d\n", binaryInput, decimalOutput)
}

// binaryToDecimal converts a binary string to a decimal integer
func binaryToDecimal(binaryStr string) (int64, error) {
    // Parse the binary string using base 2
    decimalValue, err := strconv.ParseInt(binaryStr, 2, 64)
    if err != nil {
        return 0, err
    }
    return decimalValue, nil
}

    

Program Details

Let’s go through the code in detail:

Package Declaration

package main
    

This line declares the package name. In Go, the main package is used for executable commands.

Importing Packages

import (
    "fmt"
    "strconv"
)

    

Here, we import two packages: fmt for formatting input and output, and strconv for converting string data types.

Main Function

// main is the entry point of the program
func main() {
    fmt.Print("Enter a binary number: ")
    var binaryInput string
    fmt.Scanln(&binaryInput)

    decimalOutput, err := binaryToDecimal(binaryInput)
    if err != nil {
        fmt.Println("Error:", err)
        return
    }

    fmt.Printf("The decimal equivalent of %s is %d\n", binaryInput, decimalOutput)
}

    

The main function prompts the user to enter a binary number, reads the input, and then calls the binaryToDecimal function to convert it. If the conversion is successful, it prints the decimal equivalent; otherwise, it prints an error message.

binaryToDecimal Function

// binaryToDecimal converts a binary string to a decimal integer
func binaryToDecimal(binaryStr string) (int64, error) {
    decimalValue, err := strconv.ParseInt(binaryStr, 2, 64)
    if err != nil {
        return 0, err
    }
    return decimalValue, nil
}

    

This function takes a binary string as input and converts it to a decimal integer using the strconv.ParseInt function with base 2. If the conversion is successful, it returns the decimal value; otherwise, it returns an error.


By Aditya Bhuyan

I work as a cloud specialist. In addition to being an architect and SRE specialist, I work as a cloud engineer and developer. I have assisted my clients in converting their antiquated programmes into contemporary microservices that operate on various cloud computing platforms such as AWS, GCP, Azure, or VMware Tanzu, as well as orchestration systems such as Docker Swarm or Kubernetes. For over twenty years, I have been employed in the IT sector as a Java developer, J2EE architect, scrum master, and instructor. I write about Cloud Native and Cloud often. Bangalore, India is where my family and I call home. I maintain my physical and mental fitness by doing a lot of yoga and meditation.

Leave a Reply

Your email address will not be published. Required fields are marked *

error

Enjoy this blog? Please spread the word :)