# Program to convert given Binary to its equivalent ASCII character string

• Last Updated : 27 May, 2022

Given a binary string str, the task is to find its equivalent ASCII character string.

Examples:

Input: str = “0110000101100010”
Output: ab
Explanation: 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 Possible
Explanation: 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 not
• 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

 `// C++ implementation for above approach` `#include ` `using` `namespace` `std;`   `// Function to convert binary to decimal` `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[i] == ``'1'``)` `            ``dec_value += base;` `        ``base = base * 2;` `    ``}`   `    ``// Return answer` `    ``return` `dec_value;` `}`   `// Function to convert binary to ASCII` `string 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 Code` `int` `main()` `{` `    ``string s = ``"0110000101100010"``;` `    ``cout << setStringtoASCII(s);`   `    ``return` `0;` `}`

## Java

 `// Java implementation for above approach` `import` `java.util.*;`   `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` `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 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``+i)));`   `        ``// 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"``;` `    ``System.out.print(setStringtoASCII(s));`   `}` `}`   `// This code is contributed by 29AjayKumar`

## Python3

 `# python implementation for above approach`   `# Function to convert binary to decimal` `def` `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 ASCII` `def` `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 Code` `if` `__name__ ``=``=` `"__main__"``:`   `    ``s ``=` `"0110000101100010"` `    ``print``(setStringtoASCII(s))`   `    ``# This code is contributed by rakeshsahni`

## C#

 `// C# implementation for above approach` `using` `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.`

## Javascript

 ``

Output

`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)

My Personal Notes arrow_drop_up
Related Articles