Program to convert given Binary to its equivalent ASCII character string

27 May, 2022
Given a binary string str, the task is to find its equivalent ASCII character string.
Examples: 
Input: str = “0110000101100010”Output: abExplanation: Dividing str into set of 8 bits as follows: 
01100001 = 97, ASCII value of 97 is ‘a’.
01100010 = 98, ASCII value of 98 is ‘b’.
Therefore, the required ASCII character string is “ab”.
Input: str = “10000101100”Output: Not PossibleExplanation: The given binary string is not a valid string as the number of characters is not a multiple of 8.
Approach: This problem is implementation-based problem. Follow the steps below to solve the given problem. 
At first, check if s is divisible by 8 or notIf not divisible by 8 print “Not Possible”Otherwise, move to the next step
If not divisible by 8 print “Not Possible”
Otherwise, move to the next step
Declare an empty string to store all the ASCII character string.
Traverses in a jump of 8 characters and in each step find the decimal equivalent value of the current set of 8 bits.
Convert the decimal value to its equivalent ASCII character and append it to the res string.
Return the res string.
Below is the implementation of the above approach:
C++14
Java
Python3
C#
Javascript
// C++ implementation for above approach#include <bits/stdc++.h>using namespace std; // Function to convert binary to decimalint binaryToDecimal(string n){    string num = n;     // Stores the decimal value    int dec_value = 0;     // Initializing base value to 1    int base = 1;     int len = num.length();    for (int i = len - 1; i >= 0; i--) {         // If the current bit is 1        if (num[i] == '1')            dec_value += base;        base = base * 2;    }     // Return answer    return dec_value;} // Function to convert binary to ASCIIstring setStringtoASCII(string str){    // To store size of s    int N = int(str.size());     // If given string is not a    // valid string    if (N % 8 != 0) {        return "Not Possible!";    }     // To store final answer    string res = "";     // Loop to iterate through string    for (int i = 0; i < N; i += 8) {        int decimal_value            = binaryToDecimal((str.substr(i, 8)));         // Apprend the ASCII character        // equivalent to current value        res += char(decimal_value);    }     // Return Answer    return res;} // Driver Codeint main(){    string s = "0110000101100010";    cout << setStringtoASCII(s);     return 0;}
// Java implementation for above approachimport java.util.*; class GFG{ // Function to convert binary to decimalstatic int binaryToDecimal(String n){    String num = n;     // Stores the decimal value    int dec_value = 0;     // Initializing base value to 1    int base = 1;     int len = num.length();    for (int i = len - 1; i >= 0; i--) {         // If the current bit is 1        if (num.charAt(i) == '1')            dec_value += base;        base = base * 2;    }     // Return answer    return dec_value;} // Function to convert binary to ASCIIstatic String setStringtoASCII(String str){       // To store size of s    int N = (str.length());     // If given String is not a    // valid String    if (N % 8 != 0) {        return "Not Possible!";    }     // To store final answer    String res = "";     // Loop to iterate through String    for (int i = 0; i < N; i += 8) {        int decimal_value            = binaryToDecimal((str.substring(i, 8+i)));         // Apprend the ASCII character        // equivalent to current value        res += (char)(decimal_value);    }     // Return Answer    return res;} // Driver Codepublic static void main(String[] args){    String s = "0110000101100010";    System.out.print(setStringtoASCII(s)); }} // This code is contributed by 29AjayKumar
# python implementation for above approach # Function to convert binary to decimaldef binaryToDecimal(n):    num = n     # Stores the decimal value    dec_value = 0     # Initializing base value to 1    base = 1     le = len(num)    for i in range(le - 1, -1, -1):         # If the current bit is 1        if (num[i] == '1'):            dec_value += base        base = base * 2     # Return answer    return dec_value # Function to convert binary to ASCIIdef setStringtoASCII(str):     # To store size of s    N = int(len(str))     # If given string is not a    # valid string    if (N % 8 != 0):        return "Not Possible!"         # To store final answer    res = ""     # Loop to iterate through string    for i in range(0, N, 8):        decimal_value = binaryToDecimal(str[i: i + 8])         # Apprend the ASCII character        # equivalent to current value        res += chr(decimal_value)         # Return Answer    return res # Driver Codeif __name__ == "__main__":     s = "0110000101100010"    print(setStringtoASCII(s))     # This code is contributed by rakeshsahni
// C# implementation for above approachusing System; class GFG {     // Function to convert binary to decimal    static int binaryToDecimal(string n)    {        string num = n;         // Stores the decimal value        int dec_value = 0;         // Initializing base value to 1        int base1 = 1;         int len = num.Length;        for (int i = len - 1; i >= 0; i--) {             // If the current bit is 1            if (num[i] == '1')                dec_value += base1;            base1 = base1 * 2;        }         // Return answer        return dec_value;    }     // Function to convert binary to ASCII    static string setStringtoASCII(string str)    {         // To store size of s        int N = (str.Length);         // If given String is not a        // valid String        if (N % 8 != 0) {            return "Not Possible!";        }         // To store final answer        string res = "";         // Loop to iterate through String        for (int i = 0; i < N; i += 8) {            int decimal_value                = binaryToDecimal((str.Substring(i, 8)));             // Apprend the ASCII character            // equivalent to current value            res += (char)(decimal_value);        }         // Return Answer        return res;    }     // Driver Code    public static void Main(string[] args)    {        string s = "0110000101100010";        Console.WriteLine(setStringtoASCII(s));    }} // This code is contributed by ukasp.
<script> // JavaScript implementation for above approach // Function to convert binary to decimalfunction binaryToDecimal(n){    let num = n;     // Stores the decimal value    let dec_value = 0;     // Initializing base value to 1    let base = 1;     let len = n.length;    for(let i = len - 1; i >= 0; i--)    {                 // If the current bit is 1        if (n[i] == '1')            dec_value += base;                     base = base * 2;    }     // Return answer    return dec_value;} // Function to convert binary to ASCIIfunction setStringtoASCII(str){         // To store size of s    let N = str.length;     // If given string is not a    // valid string    if (N % 8 != 0)    {        return "Not Possible!";    }     // To store final answer    let res = "";     // Loop to iterate through string    for(let i = 0; i < N; i = i + 8)    {        let decimal_value = binaryToDecimal(            (str.slice(i, i + 8)));         // Apprend the ASCII character        // equivalent to current value        res = res + String.fromCharCode(decimal_value);    }     // Return Answer    return res;} // Driver Codelet s = "0110000101100010";document.write(setStringtoASCII(s)); // This code is contributed by Potta Lokesh </script>
ab
Time Complexity: O(N), as we are using a loop to traverse N times so it will cost us O(N) time.Auxiliary Space: O(N)
lokeshpotta20
rakeshsahni
29AjayKumar
ukasp
rohitsingh07052
ASCII
binary-string
Bit Magic
School Programming
Searching
Strings
Searching
Strings
Bit Magic
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Check if binary string multiple of 3 using DFA
Check for Integer Overflow
Maximum AND value of a pair in an array
Detect if two integers have opposite signs
Extract 'k' bits from a given position in a number.
C++ Classes and Objects
Python Dictionary
Object Oriented Programming in C++
Inheritance in C++
Arrays in C/C++