/* Author: Motasim GitHub: https://github.com/motasimmakki Date: 19-Oct-2021 */ // This algorithm will convert any Binary number(0 or 1) to Decimal number(+ve number). // https://en.wikipedia.org/wiki/Binary_number // https://en.wikipedia.org/wiki/Decimal // Function receives a Binary Number as string and returns the Decimal number as integer. // Supported Binary number range is 0 to 2^(31-1). // time complexity: O(n) // space complexity: O(1) package conversion // Importing necessary package. import ( "errors" "regexp" ) var isValid = regexp.MustCompile("^[0-1]{1,}$").MatchString // BinaryToDecimal() function that will take Binary number as string, // and return its Decimal equivalent as an integer. func BinaryToDecimal(binary string) (int, error) { if !isValid(binary) { return -1, errors.New("not a valid binary string") } if len(binary) > 32 { return -1, errors.New("binary number must be in range 0 to 2^(31-1)") } var result, base int = 0, 1 for i := len(binary) - 1; i >= 0; i-- { if binary[i] == '1' { result += base } base *= 2 } return result, nil } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy