/* Author: Motasim GitHub: https://github.com/motasimmakki Date: 14-Oct-2021 */ // This algorithm will convert any Decimal (+ve integer) number to Binary number. // https://en.wikipedia.org/wiki/Binary_number // Function receives a integer as a Decimal number and returns the Binary number. // Supported integer value range is 0 to 2^(31 -1). // time complexity: O(log(n)) // space complexity: O(1) package conversion // Importing necessary package. import ( "errors" "strconv" ) // Reverse() function that will take string, // and returns the reverse of that string. func Reverse(str string) string { rStr := []rune(str) for i, j := 0, len(rStr)-1; i < len(rStr)/2; i, j = i+1, j-1 { rStr[i], rStr[j] = rStr[j], rStr[i] } return string(rStr) } // DecimalToBinary() function that will take Decimal number as int, // and return its Binary equivalent as a string. func DecimalToBinary(num int) (string, error) { if num < 0 { return "", errors.New("integer must have +ve value") } if num == 0 { return "0", nil } var result string = "" for num > 0 { result += strconv.Itoa(num & 1) num >>= 1 } return Reverse(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